TinyXML是一个开源的解析XML的解析库,这个解析库的模型通过解析XML文件,然后在内存中生成DOM模型,从而让我们很方便的遍历这棵XML树。QQ中解析XML使用的就是tinyXml,只不过他将其封装成了一个DLL来使用。
TinyXML中主要的类有:
TiXmlBase:TinyXML模型的基类。
TiXmlAttribute:对应于XML中的元素的属性。
TiXmlNode:对应于DOM结构中的节点。
TiXmlComment:对应于XML中的注释
TiXmlDeclaration:对应于XML中的声明部分。
TiXmlDocument:对应于XML的整个文档。
TiXmlElement:对应于XML的元素。
TiXmlText:对应于XML的元素的value
我所使用的tinyXml的版本是tinyxml_2_6_2,下载地址是http://www.grinninglizard.com/tinyxml/。解压后,可以看到它区分了使用STL string和const char*的tinyxmlSTL和tinyxml。为了使用STL,我编译了tinyxmlSTL。
tinyxmlSTL编译生成的是一个tinyxmlSTL.lib的静态库。只支持_MBCS,不支持UNICODE。线程库模型是Multi-threaded (/MT)而不是Multi-threaded DLL (/MD)。新建一个测试工程,使用tinyxmlSTL.lib时会出现许多link库冲突的问题。因此使用起来极不方便。反而不如将”tinyxml.h、tinystr.h、tinystr.cpp、tinyxml.cpp、tinyxmlerror.cpp、tinyxmlparser.cpp“ 6个文件导入自己的工程更为方便。
注意:自己的工程如果想使用STL版本的tinyxmlSTL,需在宏定义中添加 TIXML_USE_STL。并且UNICODE改为MBCS,_MBCS编译。
参考: