TinyXML是一个开源的解析XML的解析库,能够用于C++,能够在Windows或Linux中编译。这个解析库的模型通过解析XML文件,然后在内存中生成DOM模型,从而让我们很方便的遍历这棵XML树。DOM模型即文档对象模型,是将整个文档分成多个元素(如书、章、节、段等),并利用树型结构表示这些元素之间的顺序关系以及嵌套包含关系。TinyXML是个解析库,主要由DOM模型类(TiXmlBase、TiXmlNode、TiXmlAttribute、TiXmlComment、TiXmlDeclaration、TiXmlElement、TiXmlText、TiXmlUnknown)和操作类(TiXmlHandler)构成。它由两个头文件(.h文件)和四个CPP文件(.cpp文件)构成,用的时候,只要将(tinyxml.h、tinystr.h、tinystr.cpp、tinyxml.cpp、tinyxmlerror.cpp、tinyxmlparser.cpp)导入工程就可以用它的东西了,这里我把这四个cpp文件做成了静态库libtinyxml.a,使用的时候只在工程中需包含静态库和两个头文件。
如何析 xml 文档,一般是这样的:
1 加载 xml
2 获得根元素
3 获取任意一个元素
4 对元素进行解析。
1、加载 xml 加载 xml 首先必须得创建一个文档对象,文档类有下面几种构造函数
TiXmlDocument();//Create a document with a name. The name of the document is also the filenameof the xml.
TiXmlDocument(const char * documentName );
通过文件载入 有了文档对象后可以载入文件,载入文件的函数原型为
boolLoadFile( TiXmlEncoding encoding = TIXML_DEFAULT_ENCODING );
boolLoadFile(const char*filename,TiXmlEncoding encoding=TIXML_DEFAULT_ENCODING );
通过字符串载入也可以通过载入 xml 字符串 ,函数原型为:
virtualconst char* Parse( const char* p, TiXmlParsingData*data=0, TiXmlEncoding encoding = TIXML_DEFAULT_ENCODING );
TiXmlParsingData*data 这个参数不知道有什么用,默认使用了没问题
文档对象的四个成员函数
voidPrint() const 输出到控制台窗口
boolSaveFile( const std::string& filename ) const;保存文档到指定文件名
constchar * ErrorDesc() const;//用来输出错误说明
2、获得根元素 通过上一步加载的文档对象来获取跟元素,下面是获取根元素的函数原型: