• 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(); }
  • 相关阅读:
    (转)如何用PHP/MySQL为 iOS App 写一个简单的web服务器(译) PART1
    Git 常用命令(转)
    (转)iphone常用控件之UIScrollView 不错收藏记录一下
    (转) copy, retain, assign , readonly , readwrite,strong,weak,nonatomic整理
    设计一个移动应用的本地缓存机制(转)
    让表格对角线上的表格变色
    DevExpress XtraReports 入门一 创建 Hello World 报表
    DevExpress XtraReports 入门三 创建 MasterDetail(主/从) 报表
    DevExpress XtraReports 入门二 创建 dataaware(数据感知) 报表
    自己搜集的一些资料(只是一些链接而已)
  • 原文地址:https://www.cnblogs.com/lnlin/p/9656291.html
Copyright © 2020-2023  润新知