TinyXML是一个开源的解析XML的解析库,能够用于C++,能够在Windows或Linux中编译。这个解析库的模型通过解析XML文件,然后在内存中生成DOM模型,从而让我们很方便的遍历这棵XML树。
DOM模型即文档对象模型,是将整个文档分成多个元素(如书、章、节、段等),并利用树型结构表示这些元素之间的顺序关系以及嵌套包含关系。
在TinyXML中,根据XML的各种元素来定义了一些类:
XmlNode:对应于DOM结构中的节点的基类,定义了节点转换,节点遍历及节点操作(增,删,查,改)
class XMLNode { //转换接口 virtual XMLElement* ToElement(); virtual XMLText* ToText(); virtual XMLComment* ToComment(); virtual XMLDocument* ToDocument(); virtual XMLDeclaration* ToDeclaration(); virtual XMLUnknown* ToUnknown(); const char* Value() const; //获取元素名称 void SetValue( const char* val, bool staticMem=false ); //修改元素名称 XMLNode* Parent(); bool NoChildren() const; XMLNode* FirstChild(); XMLNode* LastChild(); const XMLElement* FirstChildElement( const char* name = 0 ) const; const XMLElement* LastChildElement( const char* name = 0 ) const; XMLNode* PreviousSibling(); XMLNode* NextSibling(); const XMLElement* PreviousSiblingElement( const char* name = 0 ) const ; //获取上一个元素 const XMLElement* NextSiblingElement( const char* name = 0 ) const; //获取下一个元素 XMLNode* InsertEndChild( XMLNode* addThis ); XMLNode* InsertFirstChild( XMLNode* addThis ); XMLNode* InsertAfterChild( XMLNode* afterThis, XMLNode* addThis ); void DeleteChildren(); //删除所有节点 void DeleteChild( XMLNode* node ); //删除指定节点 }