C++XML 解析之 TinyXML 篇
最近使用 TinyXML 进行 C++ XML 解析,感觉使用起来比较简单,很容易上手,本
文给出一个使用 TinyXML 进行 XML 解析的简单例子,很多复杂的应用都可以基于本例
子的方法来完成。以后的文章里会讲解使用 Xerces 进行 C++ XML 解析的例子,希望大家
一起交流。
TinyXML 是一个开源的解析 XML 的解析库,能够用于 C++,能够在 Windows 或 Linux
中编译。这个解析库的模型通过解析 XML 文件,然后在内存中生成 DOM 模型,从而让
我们很方便的遍历这棵 XML 树。
DOM 模型即文档对象模型,是将整个文档分成多个元素(如书、章、节、段等),并利
用树型结构表示这些元素之间的顺序关系以及嵌套包含关系。
首先从网上下载 TinyXML 的库,文件夹的名字是 TinyXpath,在工程里做如下配置:
在附加包含路径里添加:你的 tinyxpath 路径/tinyxpath/include
在附加库路径里添加:你的 tinyxpath 路径/tinyxpath/lib
在对象/库路径里添加:tinyxpathd.lib,如果使用 release 版本,则是 tinyxpath.lib。
另外,由于我开发的项目是多线程的,所以设置了多线程的环境,因此使用 TinyXML
没有出现问题。本人将 TinyXML 写在一个单独的 C++工程进行测试,发现如果不设置多
线程的环境,会出现链接错误。我觉得原因可能是 TinyXML 使用了多线程环境,因此需
要设置多线程的环境。在工程/设置下的 C/C++选项卡中,选择 Code Generation,在 Use
run-time library 中选择 Debug MultiThreaed DLL 即可。
本例的 XML 文件 Students.xml 如下:
<Class name="计算机软件班">
<Students>
<student name="张三" studentNo="13031001" sex="男" age="22">
<phone>88208888</phone>
<address>西安市太白南路二号</address>
</student>
<student name="李四" studentNo="13031002" sex="男" age="20">
<phone>88206666</phone>