亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? tinyxml.h

?? 一個簡單的xml解析代碼
?? H
?? 第 1 頁 / 共 3 頁
字號:
    }   ///< STL std::string form.#endif    /** An alternate way to walk the children of a node.        One way to iterate over nodes is:        @verbatim            for( child = parent->FirstChild(); child; child = child->NextSibling() )        @endverbatim        IterateChildren does the same thing with the syntax:        @verbatim            child = 0;            while( child = parent->IterateChildren( child ) )        @endverbatim        IterateChildren takes the previous child as input and finds        the next one. If the previous child is null, it returns the        first. IterateChildren will return null when done.    */    TiXmlNode* IterateChildren( TiXmlNode* previous ) const;    /// This flavor of IterateChildren searches for children with a particular 'value'    TiXmlNode* IterateChildren( const char * value, TiXmlNode* previous ) const;#ifdef TIXML_USE_STL    TiXmlNode* IterateChildren( const std::string& value, TiXmlNode* previous ) const {        return IterateChildren (value.c_str (), previous);    }   ///< STL std::string form.#endif    /** Add a new node related to this. Adds a child past the LastChild.        Returns a pointer to the new object or NULL if an error occured.    */    TiXmlNode* InsertEndChild( const TiXmlNode& addThis );    /** Add a new node related to this. Adds a child past the LastChild.        NOTE: the node to be added is passed by pointer, and will be        henceforth owned (and deleted) by tinyXml. This method is efficient        and avoids an extra copy, but should be used with care as it        uses a different memory model than the other insert functions.        @sa InsertEndChild    */    TiXmlNode* LinkEndChild( TiXmlNode* addThis );    /** Add a new node related to this. Adds a child before the specified child.        Returns a pointer to the new object or NULL if an error occured.    */    TiXmlNode* InsertBeforeChild( TiXmlNode* beforeThis, const TiXmlNode& addThis );    /** Add a new node related to this. Adds a child after the specified child.        Returns a pointer to the new object or NULL if an error occured.    */    TiXmlNode* InsertAfterChild(  TiXmlNode* afterThis, const TiXmlNode& addThis );    /** Replace a child of this node.        Returns a pointer to the new object or NULL if an error occured.    */    TiXmlNode* ReplaceChild( TiXmlNode* replaceThis, const TiXmlNode& withThis );    /// Delete a child of this node.    bool RemoveChild( TiXmlNode* removeThis );    /// Navigate to a sibling node.    TiXmlNode* PreviousSibling() const {        return prev;    }    /// Navigate to a sibling node.    TiXmlNode* PreviousSibling( const char * ) const;#ifdef TIXML_USE_STL    TiXmlNode* PreviousSibling( const std::string& value ) const {        return PreviousSibling (value.c_str ());    }   ///< STL std::string form.    TiXmlNode* NextSibling( const std::string& value) const {        return NextSibling (value.c_str ());    }   ///< STL std::string form.#endif    /// Navigate to a sibling node.    TiXmlNode* NextSibling() const {        return next;    }    /// Navigate to a sibling node with the given 'value'.    TiXmlNode* NextSibling( const char * ) const;    /** Convenience function to get through elements.        Calls NextSibling and ToElement. Will skip all non-Element        nodes. Returns 0 if there is not another element.    */    TiXmlElement* NextSiblingElement() const;    /** Convenience function to get through elements.        Calls NextSibling and ToElement. Will skip all non-Element        nodes. Returns 0 if there is not another element.    */    TiXmlElement* NextSiblingElement( const char * ) const;#ifdef TIXML_USE_STL    TiXmlElement* NextSiblingElement( const std::string& value) const {        return NextSiblingElement (value.c_str ());    }   ///< STL std::string form.#endif    /// Convenience function to get through elements.    TiXmlElement* FirstChildElement()   const;    /// Convenience function to get through elements.    TiXmlElement* FirstChildElement( const char * value ) const;#ifdef TIXML_USE_STL    TiXmlElement* FirstChildElement( const std::string& value ) const {        return FirstChildElement (value.c_str ());    }   ///< STL std::string form.#endif    /// Query the type (as an enumerated value, above) of this node.    virtual int Type() const {        return type;    }    /** Return a pointer to the Document this node lives in.        Returns null if not in a document.    */    TiXmlDocument* GetDocument() const;    /// Returns true if this node has no children.    bool NoChildren() const {        return !firstChild;    }    TiXmlDocument* ToDocument() const {        return( this && type == DOCUMENT ) ? (TiXmlDocument*) this : NULL;    } ///< Cast to a more defined type. Will return null not of the requested type.    TiXmlElement*  ToElement() const {        return( this && type == ELEMENT  ) ? (TiXmlElement*)  this : NULL;    } ///< Cast to a more defined type. Will return null not of the requested type.    TiXmlComment*  ToComment() const {        return( this && type == COMMENT  ) ? (TiXmlComment*)  this : NULL;    } ///< Cast to a more defined type. Will return null not of the requested type.    TiXmlUnknown*  ToUnknown() const {        return( this && type == UNKNOWN  ) ? (TiXmlUnknown*)  this :NULL;    } ///< Cast to a more defined type. Will return null not of the requested type.    TiXmlText*     ToText()    const {        return( this && type == TEXT     ) ? (TiXmlText*)     this : NULL;    } ///< Cast to a more defined type. Will return null not of the requested type.    TiXmlDeclaration* ToDeclaration() const {        return( this && type == DECLARATION ) ? (TiXmlDeclaration*) this :NULL;    } ///< Cast to a more defined type. Will return null not of the requested type.    virtual TiXmlNode* Clone() const = 0;    void  SetUserData( void* user ) {        userData = user;    }    void* GetUserData() {        return userData;    }protected:    TiXmlNode( NodeType type );#ifdef TIXML_USE_STL    // The real work of the input operator.    virtual void StreamIn( TIXML_ISTREAM* in, TIXML_STRING* tag ) = 0;#endif    // Figure out what is at *p, and parse it. Returns null if it is not an xml node.    TiXmlNode* Identify( const char* start );    void CopyToClone( TiXmlNode* target ) const {        target->SetValue (value.c_str() );        target->userData = userData;    }    // Internal Value function returning a TIXML_STRING    TIXML_STRING SValue() const {        return value ;    }    TiXmlNode*      parent;    NodeType        type;    TiXmlNode*      firstChild;    TiXmlNode*      lastChild;    TIXML_STRING    value;    TiXmlNode*      prev;    TiXmlNode*      next;    void*           userData;};/** An attribute is a name-value pair. Elements have an arbitrary    number of attributes, each with a unique name.    @note The attributes are not TiXmlNodes, since they are not          part of the tinyXML document object model. There are other          suggested ways to look at this problem.    @note Attributes have a parent*/class TiXmlAttribute : public TiXmlBase {    friend class TiXmlAttributeSet;public:    /// Construct an empty attribute.    TiXmlAttribute() : prev( 0 ), next( 0 ) {    }#ifdef TIXML_USE_STL    /// std::string constructor.    TiXmlAttribute( const std::string& _name, const std::string& _value ) {        name = _name;        value = _value;    }#endif    /// Construct an attribute with a name and value.    TiXmlAttribute( const char * _name, const char * _value ): name( _name ), value( _value ), prev( 0 ), next( 0 ) {    }    const char*     Name()  const {        return name.c_str ();    }       ///< Return the name of this attribute.    const char*     Value() const {        return value.c_str ();    }      ///< Return the value of this attribute.    const int       IntValue() const;                                   ///< Return the value of this attribute, converted to an integer.    const double    DoubleValue() const;                                ///< Return the value of this attribute, converted to a double.    void SetName( const char* _name ) {        name = _name;    }               ///< Set the name of this attribute.    void SetValue( const char* _value ) {        value = _value;    }             ///< Set the value.    void SetIntValue( int value );                                      ///< Set the value from an integer.    void SetDoubleValue( double value );                                ///< Set the value from a double.#ifdef TIXML_USE_STL    /// STL std::string form.    void SetName( const std::string& _name )    {        StringToBuffer buf( _name );        SetName ( buf.buffer ? buf.buffer : "error" );      }    /// STL std::string form.	    void SetValue( const std::string& _value )  {        StringToBuffer buf( _value );        SetValue( buf.buffer ? buf.buffer : "error" );      }#endif    /// Get the next sibling attribute in the DOM. Returns null at end.    TiXmlAttribute* Next() const;    /// Get the previous sibling attribute in the DOM. Returns null at beginning.    TiXmlAttribute* Previous() const;    bool operator==( const TiXmlAttribute& rhs ) const {        return rhs.name == name;    }    bool operator<( const TiXmlAttribute& rhs )  const {        return name < rhs.name;    }    bool operator>( const TiXmlAttribute& rhs )  const {        return name > rhs.name;    }    /*	[internal use]        Attribtue parsing starts: first letter of the name                         returns: the next char after the value end quote    */    virtual const char* Parse( const char* p );    // [internal use]    virtual void Print( FILE* cfile, int depth ) const;    virtual void StreamOut( TIXML_OSTREAM * out ) const;    // [internal use]    // Set the document pointer so the attribute can report errors.    void SetDocument( TiXmlDocument* doc ) {        document = doc;    }private:    TiXmlDocument*  document;   // A pointer back to a document, for error reporting.    TIXML_STRING name;    TIXML_STRING value;    TiXmlAttribute* prev;    TiXmlAttribute* next;};/*	A class used to manage a group of attributes.    It is only used internally, both by the ELEMENT and the DECLARATION.        The set can be changed transparent to the Element and Declaration    classes that use it, but NOT transparent to the Attribute    which has to implement a next() and previous() method. Which makes    it a bit problematic and prevents the use of STL.    This version is implemented with circular lists because:        - I like circular lists        - it demonstrates some independence from the (typical) doubly linked list.*/class TiXmlAttributeSet {public:    TiXmlAttributeSet();    ~TiXmlAttributeSet();    void Add( TiXmlAttribute* attribute );    void Remove( TiXmlAttribute* attribute );    TiXmlAttribute* First() const {        return( sentinel.next == &sentinel ) ? 0 : sentinel.next;    }    TiXmlAttribute* Last()  const {        return( sentinel.prev == &sentinel ) ? 0 : sentinel.prev;    }    TiXmlAttribute* Find( const char * name ) const;private:    TiXmlAttribute sentinel;};/** The element is a container class. It has a value, the element name,    and can contain other elements, text, comments, and unknowns.    Elements also contain an arbitrary number of attributes.*/class TiXmlElement : public TiXmlNode {public:    /// Construct an element.    TiXmlElement (const char * in_value);#ifdef TIXML_USE_STL    /// std::string constructor.    TiXmlElement( const std::string& _value ) :     TiXmlNode( TiXmlNode::ELEMENT ) {        firstChild = lastChild = 0;        value = _value;    }#endif    virtual ~TiXmlElement();    /** Given an attribute name, attribute returns the value        for the attribute of that name, or null if none exists.    */    const char* Attribute( const char* name ) const;    /** Given an attribute name, attribute returns the value        for the attribute of that name, or null if none exists.        If the attribute exists and can be converted to an integer,        the integer value will be put in the return 'i', if 'i'        is non-null.    */    const char* Attribute( const char* name, int* i ) const;    /** Sets an attribute of name to a given value. The attribute        will be created if it does not exist, or changed if it does.    */    void SetAttribute( const char* name, const char * value );#ifdef TIXML_USE_STL

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产福利视频一区二区三区| 午夜精品福利在线| 国产一区二区三区免费在线观看 | 日韩激情一二三区| 91精品在线免费观看| 五月天一区二区三区| 日韩精品一区二区三区四区视频| 麻豆国产91在线播放| 国产三级一区二区| 91视频免费看| 久久av中文字幕片| 国产精品国产馆在线真实露脸| 色综合久久中文综合久久97| 亚洲影视在线播放| 亚洲国产高清不卡| 欧美日韩免费在线视频| 波多野结衣中文字幕一区| 亚洲网友自拍偷拍| 国产精品亲子乱子伦xxxx裸| 欧美疯狂做受xxxx富婆| 91网址在线看| 国产高清视频一区| 免费亚洲电影在线| 亚洲免费av高清| 欧美区视频在线观看| 91在线视频免费观看| 国内精品嫩模私拍在线| 日韩av一区二| 视频在线观看国产精品| 日韩和欧美一区二区| 亚洲综合一区二区| 亚洲第一狼人社区| 日韩不卡一区二区三区| 欧美一区永久视频免费观看| 亚洲va中文字幕| 一区二区三区四区精品在线视频| 国产日韩欧美a| 国产情人综合久久777777| 欧美精品一区二区不卡| 777久久久精品| 亚洲精品在线观| 国产欧美一区二区三区沐欲| 国产农村妇女精品| 中文字幕中文字幕在线一区 | 欧美日韩一区二区在线观看视频| 99精品视频免费在线观看| 色综合色综合色综合| 91浏览器在线视频| 91精品国产高清一区二区三区蜜臀| 欧美中文字幕一区二区三区 | 欧美精品高清视频| 精品国产欧美一区二区| 国产精品视频观看| 亚洲午夜激情av| 国产酒店精品激情| 日本高清免费不卡视频| 日韩一级黄色片| 一区av在线播放| 国产乱对白刺激视频不卡| 在线观看成人小视频| 精品三级av在线| 亚洲丰满少妇videoshd| 成人午夜伦理影院| 538prom精品视频线放| 亚洲伦理在线免费看| 国产91在线看| 精品福利在线导航| 麻豆极品一区二区三区| 在线观看视频一区二区欧美日韩| 久久亚洲综合色| 国产呦精品一区二区三区网站| 欧洲一区二区三区免费视频| 国产精品久久久久久久久免费相片| 免费观看91视频大全| 6080午夜不卡| 麻豆精品视频在线观看视频| 欧美视频三区在线播放| 亚洲综合999| 91久久精品一区二区三| 夜色激情一区二区| 欧美喷潮久久久xxxxx| 香蕉av福利精品导航| 欧美一级免费观看| 久久99精品久久久| 成人免费的视频| 精品国产91乱码一区二区三区| 午夜视频在线观看一区二区| 欧美日韩精品是欧美日韩精品| 亚洲午夜久久久久| 欧美日韩dvd在线观看| 老司机精品视频一区二区三区| 久久精品视频在线看| 欧美在线观看一区二区| 麻豆精品新av中文字幕| 中文一区一区三区高中清不卡| 波波电影院一区二区三区| 一区二区成人在线| 26uuu成人网一区二区三区| 成人av免费在线| 午夜激情久久久| ...中文天堂在线一区| 欧美不卡在线视频| 色婷婷一区二区| 国产成人av一区二区| 亚洲线精品一区二区三区八戒| 精品欧美乱码久久久久久1区2区| 99这里只有精品| 国产乱理伦片在线观看夜一区| 亚洲一区二区影院| 国产精品短视频| 国产日韩影视精品| 久久免费的精品国产v∧| 欧美一区二区在线看| 日本乱人伦aⅴ精品| 国产精品自拍网站| 国产精品亚洲视频| 韩国精品主播一区二区在线观看 | 日韩视频免费观看高清在线视频| 94-欧美-setu| 色嗨嗨av一区二区三区| www.在线欧美| 欧美日韩一区中文字幕| 欧美日韩中文字幕精品| 欧美一区二区久久久| 欧美成人一区二区三区片免费| 91麻豆精品国产综合久久久久久| 欧美日韩在线不卡| 久久一区二区视频| 亚洲丝袜另类动漫二区| 亚洲最大成人综合| 三级一区在线视频先锋| 麻豆国产精品一区二区三区| 国产精品69毛片高清亚洲| 99久久亚洲一区二区三区青草 | 男女性色大片免费观看一区二区 | 欧美不卡一二三| 国产精品日日摸夜夜摸av| 国产精品久久久久久久久免费樱桃 | 亚洲乱码国产乱码精品精98午夜| 欧美日韩一区不卡| 国产亚洲自拍一区| 亚洲精品欧美激情| 国产尤物一区二区在线| 在线观看三级视频欧美| 国产日韩精品视频一区| 亚洲成人激情自拍| 99久久99久久免费精品蜜臀| 日韩精品专区在线影院观看| 一区二区久久久久| 不卡一区二区在线| 久久久高清一区二区三区| 日韩电影在线看| 欧美视频中文一区二区三区在线观看| 亚洲国产精品精华液2区45| 麻豆精品视频在线观看免费| 制服丝袜亚洲色图| 韩国一区二区三区| 国产一区二区女| 日韩视频一区二区三区在线播放| 国内精品伊人久久久久av一坑 | 国产精品正在播放| 亚洲激情图片小说视频| 欧美一区二区三区思思人| 51精品国自产在线| 久久综合中文字幕| 久久久久久久久久久久久夜| 欧美一级黄色大片| 欧美精品一区二区蜜臀亚洲| 国产三级精品在线| 亚洲美女淫视频| 亚洲男人的天堂在线aⅴ视频| 亚洲码国产岛国毛片在线| 亚洲午夜一区二区三区| 免费观看日韩电影| 国产经典欧美精品| 在线视频国内自拍亚洲视频| 9191精品国产综合久久久久久| 制服丝袜日韩国产| 国产日本亚洲高清| 亚洲综合视频在线| 捆绑调教美女网站视频一区| 国产成人啪午夜精品网站男同| 色综合天天综合色综合av| 欧美日韩mp4| 久久美女高清视频| 一区二区三区不卡视频| 美女视频网站久久| 波多野结衣在线一区| 在线视频国内一区二区| 精品日韩av一区二区| 亚洲乱码国产乱码精品精98午夜 | 99久久免费视频.com| 欧美日本高清视频在线观看| 国产校园另类小说区| 午夜精品视频一区| 成人精品gif动图一区| 91免费观看在线| 欧美精品一区二区在线播放| 亚洲综合成人在线| 处破女av一区二区|