TinyXML中类分析

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 ) constint 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(); }

猜你喜欢

转载自www.cnblogs.com/lnlin/p/9656291.html
今日推荐