TiXmlElement:
对应于XML的元素,定义了对element的相关操作
成员函数:
TiXmlElement (const char * in_value); TiXmlElement( const std::string& _value ); TiXmlElement( const TiXmlElement& ); // 定义一个TiXmlElement TiXmlElement& operator=( const TiXmlElement& base ); // TiXmlElement的 =(赋值) 运算符重载 virtual ~TiXmlElement(); // 析构函数 const char* Attribute( const char* name ) const; const char* Attribute( const char* name, int* i ) const; const char* Attribute( const char* name, double* d ) const; // 通过属性名返回属性值,若果该值可以被转化为int/double,则通过第二个参数将转化后的值返回 int QueryIntAttribute( const char* name, int* _value ) const; int QueryUnsignedAttribute( const char* name, unsigned* _value ) const; int QueryBoolAttribute( const char* name, bool* _value ) const; int QueryDoubleAttribute( const char* name, double* _value ) const; int QueryFloatAttribute( const char* name, float* _value ) const; int QueryStringAttribute( const char* name, std::string* _value ) const; // 是Attribute()的替代,但有着更丰富的错误检查 template< typename T > int QueryValueAttribute( const std::string& name, T* outValue ) const; int QueryValueAttribute( const std::string& name, std::string* outValue ) const; // 尝试将属性读入不同类型 void SetAttribute( const char* name, const char * _value ); void SetAttribute( const char * name, int value ); void SetDoubleAttribute( const char * name, double value ); // 通过给出属性名和属性值,为元素设置一个属性 void RemoveAttribute( const char * name ); // 通过给出属性名来删除元素对应的属性 const TiXmlAttribute* FirstAttribute() const { return attributeSet.First(); } TiXmlAttribute* FirstAttribute() { return attributeSet.First(); } const TiXmlAttribute* LastAttribute() const { return attributeSet.Last(); } TiXmlAttribute* LastAttribute() { return attributeSet.Last(); } // 回去元素的第一个/最后一个属性 const char* GetText() const; // 访问元素内文本 virtual TiXmlNode* Clone() const; // 创建一个此元素副本,并返回此副本 virtual void Print( FILE* cfile, int depth ) const; // 将此元素print到一个文件流
TiXmlComment:
对应于XML中的注释
成员函数:
TiXmlComment() : TiXmlNode( TiXmlNode::TINYXML_COMMENT ) {} TiXmlComment( const char* _value ) : TiXmlNode( TiXmlNode::TINYXML_COMMENT ); TiXmlComment( const TiXmlComment& ); // 创建一个TiXmlComment TiXmlComment& operator=( const TiXmlComment& base ); // 对于TiXmlComment的 =(赋值)运算符重载 virtual ~TiXmlComment() {} // 析构函数 virtual TiXmlNode* Clone() const; // 创建一个此TiXmlComment的副本,并返回它 virtual void Print( FILE* cfile, int depth ) const; virtual const char* Parse( const char* p, TiXmlParsingData* data, TiXmlEncoding encoding ); virtual const TiXmlComment* ToComment() const { return this; } virtual TiXmlComment* ToComment() { return this; } virtual bool Accept( TiXmlVisitor* visitor ) const;
TiXmlText:
对应于XML的文本部分,用于构建Element的文本部分,分为normal和CDATA两个模式
成员函数:
TiXmlText (const char * initValue ); TiXmlText( const TiXmlText& copy ); TiXmlText( const std::string& initValue ); virtual ~TiXmlText() {} // 构造函数和析构函数 TiXmlText& operator=( const TiXmlText& base ); // 对于TiXmlText的 =(赋值)运算符重载 bool CDATA() const; // 返回TiXmlText是否为CDATA模式读 void SetCDATA( bool _cdata ); // 设置TiXmlText为是否为(true/false)CDATA模式 virtual void Print( FILE* cfile, int depth ) const; virtual const char* Parse( const char* p, TiXmlParsingData* data, TiXmlEncoding encoding ); virtual const TiXmlText* ToText() const { return this; } virtual TiXmlText* ToText() { return this; } virtual bool Accept( TiXmlVisitor* content ) const;
TiXmlDeclaration:
对应于XML中的申明部分,<?xml version="?" encoding="?", standalone="?">
成员函数:
TiXmlDeclaration(); TiXmlDeclaration( const std::string& _version, const std::string& _encoding, const std::string& _standalone ); TiXmlDeclaration( const char* _version, const char* _encoding, const char* _standalone ); TiXmlDeclaration( const TiXmlDeclaration& copy ); // 构建一个TiXmlDeclaration TiXmlDeclaration& operator=( const TiXmlDeclaration& copy ); // 对应于TiXmlDeclaration的 =(赋值)运算符重载 virtual ~TiXmlDeclaration() {} // 析构函数 const char *Version() const { return version.c_str (); } const char *Encoding() const { return encoding.c_str (); } const char *Standalone() const { return standalone.c_str (); } // 获取 declaration 的 version、encoding、standalone的对应值 virtual TiXmlNode* Clone() const; // 创建一个TiXmlDeclaration的副本,并将其返回 virtual void Print( FILE* cfile, int depth, TIXML_STRING* str ) const; virtual void Print( FILE* cfile, int depth ) const; virtual const char* Parse( const char* p, TiXmlParsingData* data, TiXmlEncoding encoding ); virtual const TiXmlDeclaration* ToDeclaration() const { return this; } virtual TiXmlDeclaration* ToDeclaration() { return this; } virtual bool Accept( TiXmlVisitor* visitor ) const;
TiXmlDocument:
对应于XML的整个文档,TiXmlDocument作为顶层节点,用于连接XML的其他各个部
分,TiXmlDocument可以被load、save、print
成员函数:
TiXmlDocument(); TiXmlDocument( const char * documentName ); TiXmlDocument( const std::string& documentName ); TiXmlDocument( const TiXmlDocument& copy ); // 创建一个TiXmlDocument TiXmlDocument& operator=( const TiXmlDocument& copy ); // 对应于TiXmlDocument的 =(赋值)运算符重载 virtual ~TiXmlDocument() {} // 析构函数 bool LoadFile( TiXmlEncoding encoding = TIXML_DEFAULT_ENCODING ); bool LoadFile( const char * filename, TiXmlEncoding encoding = TIXML_DEFAULT_ENCODING ); bool LoadFile( FILE*, TiXmlEncoding encoding = TIXML_DEFAULT_ENCODING ); // 使用当前文档(或给定文件名文件指针)值加载文件,操作成功返回true bool SaveFile() const; bool SaveFile( const char * filename ) const; bool SaveFile( FILE* ) const; // 使用当前文档值保存文件(xml),操作成功返回true const TiXmlElement* RootElement() const { return FirstChildElement(); } TiXmlElement* RootElement() { return FirstChildElement(); } // 获取文档的根元素 bool Error() const { return error; } const char * ErrorDesc() const { return errorDesc.c_str (); } int ErrorId() const { return errorId; } void SetError( int err, const char* errorLocation, TiXmlParsingData* prevData, TiXmlEncoding encoding ); int ErrorRow() const { return errorLocation.row+1; } int ErrorCol() const { return errorLocation.col+1; } // 错误处理、定位 void SetTabSize( int _tabsize ) { tabsize = _tabsize; } int TabSize() const { return tabsize; } // 用于错误处理的函数的函数 void ClearError(); // 当错误被处理后,调用此函数重置错误相关参数 virtual const char* Parse( const char* p, TiXmlParsingData* data = 0, TiXmlEncoding encoding = TIXML_DEFAULT_ENCODING ); void Print() const { Print( stdout, 0 ); } virtual void Print( FILE* cfile, int depth = 0 ) const; virtual const TiXmlDocument* ToDocument() const { return this; } virtual TiXmlDocument* ToDocument() { return this; } virtual bool Accept( TiXmlVisitor* content ) const;
TiXmlHandle:
定义了一些关于XML的操作,TiXmlHandle不是 TinyXml DOM 结构的一部分,而是一个单独
的实用程序类。
成员函数:
TiXmlHandle( TiXmlNode* _node ) { this->node = _node; } TiXmlHandle( const TiXmlHandle& ref ) { this->node = ref.node; } // 创建一个TiXmlHandle TiXmlHandle operator=( const TiXmlHandle& ref ) { if ( &ref != this ) this->node = ref.node; return *this; } // 对应于TiXmlHandle的 =(赋值)运算符重载 TiXmlHandle FirstChild() const; TiXmlHandle FirstChild( const char * value ) const; // 返回第一个子节点(或给定名称的子节点)的句柄 TiXmlHandle FirstChildElement() const; TiXmlHandle FirstChildElement( const char * value ) const; // 返回第一个子元素(或给定名称的子元素)的句柄 TiXmlHandle Child( const char* value, int index ) const; TiXmlHandle Child( int index ) const; // 返回给定索引对应的子节点(/给定名称)的句柄 TiXmlHandle ChildElement( const char* value, int index ) const; TiXmlHandle ChildElement( int index ) const; // 返回给定索引对应的子元素(/给定名称)的句柄 TiXmlNode* ToNode() const { return node; } TiXmlElement* ToElement() const { return ( ( node && node->ToElement() ) ? node->ToElement() : 0 ); } TiXmlText* ToText() const { return ( ( node && node->ToText() ) ? node->ToText() : 0 ); } TiXmlUnknown* ToUnknown() const { return ( ( node && node->ToUnknown() ) ? node->ToUnknown() : 0 ); } TiXmlNode* Node() const { return ToNode(); } TiXmlElement* Element() const { return ToElement(); } TiXmlText* Text() const { return ToText(); } TiXmlUnknown* Unknown() const { return ToUnknown(); }