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

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

?? tinyxml.h

?? 聯通的短信網關平臺。 sp 使用。 如果想自己用vc 開發短信業務
?? H
?? 第 1 頁 / 共 3 頁
字號:

	TiXmlNode* FirstChild()	const	{ return firstChild; }		///< The first child of this node. Will be null if there are no children.
	TiXmlNode* FirstChild( const char * value ) const;			///< The first child of this node with the matching 'value'. Will be null if none found.

	TiXmlNode* LastChild() const	{ return lastChild; }		/// The last child of this node. Will be null if there are no children.
	TiXmlNode* LastChild( const char * value ) const;			/// The last child of this node matching 'value'. Will be null if there are no children.

    #ifdef TIXML_USE_STL
	TiXmlNode* FirstChild( const std::string& value ) const	{	return FirstChild (value.c_str ());	}	///< STL std::string form.
	TiXmlNode* LastChild( const std::string& value ) const	{	return LastChild (value.c_str ());	}	///< 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 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 : 0; } ///< Cast to a more defined type. Will return null not of the requested type.
	TiXmlElement*  ToElement() const		{ return ( this && type == ELEMENT  ) ? (TiXmlElement*)  this : 0; } ///< Cast to a more defined type. Will return null not of the requested type.
	TiXmlComment*  ToComment() const		{ return ( this && type == COMMENT  ) ? (TiXmlComment*)  this : 0; } ///< Cast to a more defined type. Will return null not of the requested type.
	TiXmlUnknown*  ToUnknown() const		{ return ( this && type == UNKNOWN  ) ? (TiXmlUnknown*)  this : 0; } ///< Cast to a more defined type. Will return null not of the requested type.
	TiXmlText*	   ToText()    const		{ return ( this && type == TEXT     ) ? (TiXmlText*)     this : 0; } ///< Cast to a more defined type. Will return null not of the requested type.
	TiXmlDeclaration* ToDeclaration() const	{ return ( this && type == DECLARATION ) ? (TiXmlDeclaration*) this : 0; } ///< 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

	// The node is passed in by ownership. This object will delete it.
	TiXmlNode* LinkEndChild( TiXmlNode* addThis );

	// 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
	const char* Attribute( const std::string& name ) const				{ return Attribute( name.c_str() ); }
	const char* Attribute( const std::string& name, int* i ) const		{ return Attribute( name.c_str(), i ); }

	/// STL std::string form.
	void SetAttribute( const std::string& name, const std::string& value )	
	{	
		StringToBuffer n( name );
		StringToBuffer v( value );
		if ( n.buffer && v.buffer )
			SetAttribute (n.buffer, v.buffer );	

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美在线你懂得| 精品国产自在久精品国产| 欧美一区二区在线看| 中文字幕精品一区二区三区精品| 尤物av一区二区| 国产乱子轮精品视频| 欧美日韩视频专区在线播放| 国产精品人成在线观看免费| 麻豆精品视频在线观看| 色偷偷久久人人79超碰人人澡| 精品久久久久久最新网址| 一区二区三区在线观看网站| 国产精品18久久久久久久久久久久| 欧美伦理视频网站| 亚洲精品欧美二区三区中文字幕| 国产剧情一区在线| 91精品国产综合久久久蜜臀图片| 国产精品福利av| 国产成人综合在线播放| 欧美高清一级片在线| 亚洲一区二区在线免费观看视频 | 亚洲成人免费电影| 99精品一区二区三区| 国产亚洲综合性久久久影院| 美女视频网站久久| 欧美一级在线免费| 日韩国产欧美在线观看| 欧美三级乱人伦电影| 亚洲一区二区三区视频在线| 日本精品视频一区二区三区| 亚洲三级免费观看| 91免费观看视频| 国产精品久久久久久户外露出| 国产一区二区影院| 久久久www成人免费毛片麻豆| 久久99国产精品久久| 亚洲精品一线二线三线无人区| 美国十次了思思久久精品导航| 日韩一区二区免费高清| 视频一区视频二区中文字幕| 欧美精品三级在线观看| 日本免费新一区视频| 欧美成va人片在线观看| 国产一区二区精品久久91| 日本一区二区三区电影| 99视频在线观看一区三区| 亚洲欧美一区二区三区孕妇| 欧美在线三级电影| 日本三级亚洲精品| 久久婷婷综合激情| 成人h动漫精品| 一区二区三区成人| 日韩三级精品电影久久久 | 日韩欧美中文一区二区| 美国毛片一区二区三区| 国产欧美日韩在线| 色综合激情久久| 青青草97国产精品免费观看| 日韩欧美国产午夜精品| 成人sese在线| 亚洲va欧美va国产va天堂影院| 91麻豆精品国产91久久久使用方法 | 欧美激情综合网| 色综合久久综合网欧美综合网 | 777欧美精品| 激情欧美一区二区三区在线观看| 欧美国产日产图区| 在线亚洲欧美专区二区| 久久精品国产在热久久| 国产精品久久久久7777按摩| 欧美剧在线免费观看网站| 国产一区二区三区视频在线播放| 国产精品热久久久久夜色精品三区 | 91丨porny丨首页| 日韩av电影一区| 国产精品嫩草久久久久| 欧美一区二区在线观看| 99久久精品免费看国产免费软件| 丝袜诱惑制服诱惑色一区在线观看| 欧美videofree性高清杂交| 91蝌蚪国产九色| 国产精品538一区二区在线| 亚洲成a天堂v人片| 国产精品欧美久久久久无广告| 91精品国产综合久久国产大片| 国产成人免费xxxxxxxx| 看电影不卡的网站| 夜夜亚洲天天久久| 欧美高清在线一区| 精品国产人成亚洲区| 欧美亚洲综合网| 成人av在线影院| 国产乱子伦一区二区三区国色天香| 亚洲国产日产av| 亚洲人123区| 中文字幕日韩一区| 久久午夜羞羞影院免费观看| 欧美理论电影在线| 在线观看91精品国产入口| 成人免费高清在线观看| 国产一区二区中文字幕| 日韩综合在线视频| 成人免费在线视频| 国产亚洲1区2区3区| 精品国产一区久久| 欧美不卡一区二区三区四区| 在线不卡中文字幕播放| 欧美亚洲国产一区二区三区va| 99久久久国产精品免费蜜臀| 成人av动漫网站| 成人精品国产福利| 国产九色sp调教91| 国产乱码精品一区二区三区av | 91在线观看视频| 成人的网站免费观看| 成人av午夜电影| 成人黄色免费短视频| 成熟亚洲日本毛茸茸凸凹| 高清不卡在线观看av| 99免费精品在线观看| 99久久综合国产精品| 99热99精品| 欧美性xxxxxx少妇| 91麻豆精品国产自产在线观看一区 | 韩国一区二区三区| 国产精品乡下勾搭老头1| www.性欧美| 色综合激情五月| 欧美日韩不卡在线| 欧美一区二区三区在线观看| 日韩片之四级片| 精品久久久久久最新网址| 国产亚洲精品aa| 亚洲精品国产精品乱码不99| 亚洲曰韩产成在线| 日韩va欧美va亚洲va久久| 精品一区二区三区久久久| 国产高清亚洲一区| 91小视频免费观看| 欧美日韩小视频| 久久日韩粉嫩一区二区三区| 国产精品嫩草久久久久| 亚洲一区二区三区精品在线| 日韩—二三区免费观看av| 国产馆精品极品| 色天使久久综合网天天| 日韩一区二区三区三四区视频在线观看| 日韩丝袜情趣美女图片| 国产精品乱人伦中文| 亚洲高清在线视频| 国产精品一区二区视频| 色婷婷综合中文久久一本| 日韩免费一区二区三区在线播放| 国产蜜臀97一区二区三区| 亚洲国产综合人成综合网站| 激情五月婷婷综合| 色素色在线综合| 久久精品视频在线看| 亚洲图片欧美色图| 国产精品亚洲一区二区三区妖精 | 成人h版在线观看| 日韩限制级电影在线观看| 亚洲三级久久久| 久久99精品一区二区三区三区| 99国产欧美另类久久久精品| 精品久久久久99| 亚洲在线视频免费观看| 国产一区二区三区最好精华液| 99国产精品久久久久久久久久 | 国产乱子轮精品视频| 欧美午夜精品电影| 欧美韩国一区二区| 久久99热狠狠色一区二区| 在线视频一区二区三区| 久久久高清一区二区三区| 日本不卡视频在线| 欧美色综合天天久久综合精品| 国产欧美日韩另类一区| 美女任你摸久久| 欧美人与z0zoxxxx视频| 综合久久久久久久| 本田岬高潮一区二区三区| 久久久久久久久久久电影| 蜜臀av性久久久久蜜臀aⅴ流畅| 欧美综合天天夜夜久久| 亚洲视频香蕉人妖| 成人自拍视频在线| 国产欧美一区二区精品性| 老鸭窝一区二区久久精品| 91麻豆精品91久久久久同性| 亚洲自拍偷拍欧美| 91精彩视频在线| ...中文天堂在线一区| 99亚偷拍自图区亚洲| 国产精品免费看片| 成人av资源下载| 亚洲欧洲综合另类| 在线观看国产精品网站| 一区二区三区色| 欧美中文字幕亚洲一区二区va在线|