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

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

?? tinyxmla.h

?? 文字編輯器源碼 Text editor source code
?? H
?? 第 1 頁 / 共 3 頁
字號:
	friend class TiXmlElementA;public:	/// Constructor.	TiXmlTextA (const char * initValue) : TiXmlNodeA (TiXmlNodeA::TEXT)	{		SetValue( initValue );	}	virtual ~TiXmlTextA() {}	#ifdef TIXMLA_USE_STL	/// Constructor.	TiXmlTextA( const std::string& initValue ) : TiXmlNodeA (TiXmlNodeA::TEXT)	{		SetValue( initValue );	}	#endif	// [internal use]	virtual void Print( FILE* cfile, int depth ) const;protected :	// [internal use] Creates a new Element and returns it.	virtual TiXmlNodeA* Clone() const;	virtual void StreamOut ( TIXMLA_OSTREAM * out ) const;	// [internal use]	bool Blank() const;	// returns true if all white space and new lines	/*	[internal use]			Attribtue parsing starts: First char of the text							 returns: next char past '>'	*/	virtual const char* Parse( const char* p, TiXmlParsingDataA* data );	// [internal use]	#ifdef TIXMLA_USE_STL	    virtual void StreamIn( TIXMLA_ISTREAM * in, TIXMLA_STRING * tag );	#endif};/** In correct XML the declaration is the first entry in the file.	@verbatim		<?xml version="1.0" standalone="yes"?>	@endverbatim	TinyXml will happily read or write files without a declaration,	however. There are 3 possible attributes to the declaration:	version, encoding, and standalone.	Note: In this version of the code, the attributes are	handled as special cases, not generic attributes, simply	because there can only be at most 3 and they are always the same.*/class TiXmlDeclarationA : public TiXmlNodeA{public:	/// Construct an empty declaration.	TiXmlDeclarationA()   : TiXmlNodeA( TiXmlNodeA::DECLARATION ) {}#ifdef TIXMLA_USE_STL	/// Constructor.	TiXmlDeclarationA(	const std::string& _version,						const std::string& _encoding,						const std::string& _standalone )			: TiXmlNodeA( TiXmlNodeA::DECLARATION )	{		version = _version;		encoding = _encoding;		standalone = _standalone;	}#endif	/// Construct.	TiXmlDeclarationA(	const char* _version,						const char* _encoding,						const char* _standalone );	virtual ~TiXmlDeclarationA()	{}	/// Version. Will return empty if none was found.	const char * Version() const		{ return version.c_str (); }	/// Encoding. Will return empty if none was found.	const char * Encoding() const		{ return encoding.c_str (); }	/// Is this a standalone document?	const char * Standalone() const		{ return standalone.c_str (); }	// [internal use] Creates a new Element and returs it.	virtual TiXmlNodeA* Clone() const;	// [internal use]	virtual void Print( FILE* cfile, int depth ) const;protected:	// used to be public	#ifdef TIXMLA_USE_STL	    virtual void StreamIn( TIXMLA_ISTREAM * in, TIXMLA_STRING * tag );	#endif	virtual void StreamOut ( TIXMLA_OSTREAM * out) const;	//	[internal use]	//	Attribtue parsing starts: next char past '<'	//					 returns: next char past '>'	virtual const char* Parse( const char* p, TiXmlParsingDataA* data );private:	TIXMLA_STRING version;	TIXMLA_STRING encoding;	TIXMLA_STRING standalone;};/** Any tag that tinyXml doesn't recognize is saved as an	unknown. It is a tag of text, but should not be modified.	It will be written back to the XML, unchanged, when the file	is saved.*/class TiXmlUnknownA : public TiXmlNodeA{public:	TiXmlUnknownA() : TiXmlNodeA( TiXmlNodeA::UNKNOWN ) {}	virtual ~TiXmlUnknownA() {}	// [internal use]	virtual TiXmlNodeA* Clone() const;	// [internal use]	virtual void Print( FILE* cfile, int depth ) const;protected:	#ifdef TIXMLA_USE_STL	    virtual void StreamIn( TIXMLA_ISTREAM * in, TIXMLA_STRING * tag );	#endif	virtual void StreamOut ( TIXMLA_OSTREAM * out ) const;	/*	[internal use]		Attribute parsing starts: First char of the text						 returns: next char past '>'	*/	virtual const char* Parse( const char* p, TiXmlParsingDataA* data );};/** Always the top level node. A document binds together all the	XML pieces. It can be saved, loaded, and printed to the screen.	The 'value' of a document node is the xml file name.*/class TiXmlDocumentA : public TiXmlNodeA{public:	/// Create an empty document, that has no name.	TiXmlDocumentA();	/// Create a document with a name. The name of the document is also the filename of the xml.	TiXmlDocumentA( const char * documentName );	#ifdef TIXMLA_USE_STL	/// Constructor.	TiXmlDocumentA( const std::string& documentName ) :	    TiXmlNodeA( TiXmlNodeA::DOCUMENT )	{        value = documentName;		error = false;	}	#endif	virtual ~TiXmlDocumentA() {}	/** Load a file using the current document value.		Returns true if successful. Will delete any existing		document data before loading.	*/	bool LoadFile();	/// Save a file using the current document value. Returns true if successful.	bool SaveFile() const;	/// Load a file using the given filename. Returns true if successful.	bool LoadFile( const char * filename );	/// Save a file using the given filename. Returns true if successful.	bool SaveFile( const char * filename ) const;	bool LoadUnicodeFilePath(const TCHAR* filename);	#ifdef TIXMLA_USE_STL	bool LoadFile( const std::string& filename )			///< STL std::string version.	{		StringToBuffer f( filename );		return ( f.buffer && LoadFile( f.buffer ));	}	bool SaveFile( const std::string& filename ) const		///< STL std::string version.	{		StringToBuffer f( filename );		return ( f.buffer && SaveFile( f.buffer ));	}	#endif	/** Parse the given null terminated block of xml data.	*/	virtual const char* Parse( const char* p, TiXmlParsingDataA* data = 0 );	/** Get the root element -- the only top level element -- of the document.		In well formed XML, there should only be one. TinyXml is tolerant of		multiple elements at the document level.	*/	TiXmlElementA* RootElement() const		{ return FirstChildElement(); }	/** If an error occurs, Error will be set to true. Also,		- The ErrorId() will contain the integer identifier of the error (not generally useful)		- The ErrorDesc() method will return the name of the error. (very useful)		- The ErrorRow() and ErrorCol() will return the location of the error (if known)	*/		bool Error() const						{ return error; }	/// Contains a textual (english) description of the error if one occurs.	const char * ErrorDesc() const	{ return errorDesc.c_str (); }	/** Generally, you probably want the error string ( ErrorDesc() ). But if you		prefer the ErrorId, this function will fetch it.	*/	const int ErrorId()	const				{ return errorId; }	/** Returns the location (if known) of the error. The first column is column 1, 		and the first row is row 1. A value of 0 means the row and column wasn't applicable		(memory errors, for example, have no row/column) or the parser lost the error. (An		error in the error reporting, in that case.)		@sa SetTabSize, Row, Column	*/	int ErrorRow()	{ return errorLocation.row+1; }	int ErrorCol()	{ return errorLocation.col+1; }	///< The column where the error occured. See ErrorRow()	/** By calling this method, with a tab size		greater than 0, the row and column of each node and attribute is stored		when the file is loaded. Very useful for tracking the DOM back in to		the source file.		The tab size is required for calculating the location of nodes. If not		set, the default of 4 is used. The tabsize is set per document. Setting		the tabsize to 0 disables row/column tracking.		Note that row and column tracking is not supported when using operator>>.		The tab size needs to be enabled before the parse or load. Correct usage:		@verbatim		TiXmlDocumentA doc;		doc.SetTabSize( 8 );		doc.Load( "myfile.xml" );		@endverbatim		@sa Row, Column	*/	void SetTabSize( int _tabsize )		{ tabsize = _tabsize; }	int TabSize() const	{ return tabsize; }	/** If you have handled the error, it can be reset with this call. The error		state is automatically cleared if you Parse a new XML block.	*/	void ClearError()						{	error = false; 												errorId = 0; 												errorDesc = ""; 												errorLocation.row = errorLocation.col = 0; 												//errorLocation.last = 0; 											}	/** Dump the document to standard out. */	void Print() const						{ Print( stdout, 0 ); }	// [internal use]	virtual void Print( FILE* cfile, int depth = 0 ) const;	// [internal use]	void SetError( int err, const char* errorLocation, TiXmlParsingDataA* prevData );protected :	virtual void StreamOut ( TIXMLA_OSTREAM * out) const;	// [internal use]	virtual TiXmlNodeA* Clone() const;	#ifdef TIXMLA_USE_STL	    virtual void StreamIn( TIXMLA_ISTREAM * in, TIXMLA_STRING * tag );	#endifprivate:	bool error;	int  errorId;	TIXMLA_STRING errorDesc;	int tabsize;	TiXmlCursorA errorLocation;};/**	A TiXmlHandleA is a class that wraps a node pointer with null checks; this is	an incredibly useful thing. Note that TiXmlHandleA is not part of the TinyXml	DOM structure. It is a separate utility class.	Take an example:	@verbatim	<Document>		<Element attributeA = "valueA">			<Child attributeB = "value1" />			<Child attributeB = "value2" />		</Element>	<Document>	@endverbatim	Assuming you want the value of "attributeB" in the 2nd "Child" element, it's very 	easy to write a *lot* of code that looks like:	@verbatim	TiXmlElementA* root = document.FirstChildElement( "Document" );	if ( root )	{		TiXmlElementA* element = root->FirstChildElement( "Element" );		if ( element )		{			TiXmlElementA* child = element->FirstChildElement( "Child" );			if ( child )			{				TiXmlElementA* child2 = child->NextSiblingElement( "Child" );				if ( child2 )				{					// Finally do something useful.	@endverbatim	And that doesn't even cover "else" cases. TiXmlHandleA addresses the verbosity	of such code. A TiXmlHandleA checks for null	pointers so it is perfectly safe 	and correct to use:	@verbatim	TiXmlHandleA docHandle( &document );	TiXmlElementA* child2 = docHandle.FirstChild( "Document" ).FirstChild( "Element" ).Child( "Child", 1 ).Element();	if ( child2 )	{		// do something useful	@endverbatim	Which is MUCH more concise and useful.	It is also safe to copy handles - internally they are nothing more than node pointers.	@verbatim	TiXmlHandleA handleCopy = handle;	@endverbatim	What they should not be used for is iteration:	@verbatim	int i=0; 	while ( true )	{		TiXmlElementA* child = docHandle.FirstChild( "Document" ).FirstChild( "Element" ).Child( "Child", i ).Element();		if ( !child )			break;		// do something		++i;	}	@endverbatim	It seems reasonable, but it is in fact two embedded while loops. The Child method is 	a linear walk to find the element, so this code would iterate much more than it needs 	to. Instead, prefer:	@verbatim	TiXmlElementA* child = docHandle.FirstChild( "Document" ).FirstChild( "Element" ).FirstChild( "Child" ).Element();	for( child; child; child=child->NextSiblingElement() )	{		// do something	}	@endverbatim*/class TiXmlHandleA{public:	/// Create a handle from any node (at any depth of the tree.) This can be a null pointer.	TiXmlHandleA( TiXmlNodeA* node )			{ this->node = node; }	/// Copy constructor	TiXmlHandleA( const TiXmlHandleA& ref )	{ this->node = ref.node; }	/// Return a handle to the first child node.	TiXmlHandleA FirstChild() const;	/// Return a handle to the first child node with the given name.	TiXmlHandleA FirstChild( const char * value ) const;	/// Return a handle to the first child element.	TiXmlHandleA FirstChildElement() const;	/// Return a handle to the first child element with the given name.	TiXmlHandleA FirstChildElement( const char * value ) const;	/** Return a handle to the "index" child with the given name. 		The first child is 0, the second 1, etc.	*/	TiXmlHandleA Child( const char* value, int index ) const;	/** Return a handle to the "index" child. 		The first child is 0, the second 1, etc.	*/	TiXmlHandleA Child( int index ) const;	/** Return a handle to the "index" child element with the given name. 		The first child element is 0, the second 1, etc. Note that only TiXmlElements		are indexed: other types are not counted.	*/	TiXmlHandleA ChildElement( const char* value, int index ) const;	/** Return a handle to the "index" child element. 		The first child element is 0, the second 1, etc. Note that only TiXmlElements		are indexed: other types are not counted.	*/	TiXmlHandleA ChildElement( int index ) const;	#ifdef TIXMLA_USE_STL	TiXmlHandleA FirstChild( const std::string& _value ) const			{ return FirstChild( _value.c_str() ); }	TiXmlHandleA FirstChildElement( const std::string& _value ) const		{ return FirstChildElement( _value.c_str() ); }	TiXmlHandleA Child( const std::string& _value, int index ) const			{ return Child( _value.c_str(), index ); }	TiXmlHandleA ChildElement( const std::string& _value, int index ) const	{ return ChildElement( _value.c_str(), index ); }	#endif	/// Return the handle as a TiXmlNodeA. This may return null.	TiXmlNodeA* Node() const			{ return node; } 	/// Return the handle as a TiXmlElementA. This may return null.	TiXmlElementA* Element() const	{ return ( ( node && node->ToElement() ) ? node->ToElement() : 0 ); }	/// Return the handle as a TiXmlTextA. This may return null.	TiXmlTextA* Text() const			{ return ( ( node && node->ToText() ) ? node->ToText() : 0 ); }private:	TiXmlNodeA* node;};#endif

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美日产国产精品| 亚洲一区二区视频在线| 亚洲色图制服诱惑| 麻豆成人久久精品二区三区红 | 亚洲视频一区在线| 欧美日韩一区二区欧美激情| 亚洲欧洲另类国产综合| 日韩精品一级二级| 91免费在线播放| 国产情人综合久久777777| 日韩高清不卡一区二区三区| 成人性色生活片| 精品国产一区a| 蜜桃精品视频在线观看| 色狠狠综合天天综合综合| 亚洲国产成人在线| 国产福利视频一区二区三区| 日韩色视频在线观看| 亚洲美女视频在线| 成人av影院在线| 久久免费视频色| 精品一区二区三区免费毛片爱| 这里只有精品免费| 亚洲国产精品久久久久秋霞影院| 色综合久久久久综合体桃花网| 国产精品美女久久久久aⅴ| 激情综合五月婷婷| 久久久国际精品| 国产乱国产乱300精品| 国产色一区二区| 国产成人精品亚洲日本在线桃色| 久久九九影视网| 国产成人在线视频免费播放| 久久婷婷色综合| 国产精品一线二线三线| 国产日韩视频一区二区三区| 国产精品18久久久| 国产精品第五页| 色噜噜夜夜夜综合网| 亚洲综合丁香婷婷六月香| 欧美丝袜丝nylons| 日韩高清一区二区| 亚洲精品一区二区三区福利| 国产在线精品一区在线观看麻豆| 国产午夜精品福利| 99综合影院在线| 亚洲一区在线看| 日韩欧美综合一区| 国产成人在线观看| 亚洲欧美另类小说| 91精品欧美一区二区三区综合在| 国产资源精品在线观看| 国产精品久久久99| 欧美日韩国产美| 国产一区二区不卡在线| 亚洲欧美日韩国产综合在线| 欧美日韩午夜影院| 国产真实乱子伦精品视频| 自拍偷拍国产亚洲| 欧美一区二区三区在线观看视频| 久久99精品国产麻豆不卡| 亚洲国产成人一区二区三区| 欧美性xxxxx极品少妇| 免费黄网站欧美| 中文字幕一区二区三区蜜月| 欧美三级资源在线| 国产精品18久久久久久vr| 亚洲黄网站在线观看| 欧美精品一区二区不卡| 91视频www| 国产一二精品视频| 亚洲18女电影在线观看| 国产女人aaa级久久久级| 欧美色图在线观看| 丁香网亚洲国际| 日本v片在线高清不卡在线观看| 欧美国产精品久久| 日韩欧美中文一区二区| 色视频欧美一区二区三区| 国内成人免费视频| 亚洲电影在线播放| 成人欧美一区二区三区小说 | 九九九久久久精品| 一区二区在线看| 国产精品美女久久久久久久久 | 91精品国产麻豆国产自产在线| 国产精品99久久久久久久女警 | 欧美成人vr18sexvr| 一本色道综合亚洲| 国产精品自在在线| 免费亚洲电影在线| 亚洲一区二区三区视频在线播放| 中文字幕欧美日韩一区| 日韩三级免费观看| 欧美精品 日韩| 色欧美日韩亚洲| 国产 欧美在线| 国产精品一区二区久久精品爱涩| 九九视频精品免费| 久久精品国产99久久6| 偷拍自拍另类欧美| 亚洲一区av在线| 亚洲乱码精品一二三四区日韩在线| 久久久久9999亚洲精品| 欧美电影免费观看高清完整版在线| 欧美三级中文字幕在线观看| 欧美午夜精品久久久久久孕妇| 91视视频在线观看入口直接观看www | 欧亚洲嫩模精品一区三区| 成人av资源站| 波多野结衣一区二区三区| 国产经典欧美精品| 国产91清纯白嫩初高中在线观看| 国产精品一区二区不卡| 国产精品系列在线观看| 国产一区二区在线视频| 国产成人午夜精品影院观看视频 | 亚洲激情自拍视频| 一区二区三区小说| 一区二区三区视频在线看| 亚洲女同女同女同女同女同69| 最新国产の精品合集bt伙计| 亚洲天堂成人在线观看| 亚洲一区二区视频| 热久久国产精品| 狠狠色综合色综合网络| 国产夫妻精品视频| 懂色av噜噜一区二区三区av| 色婷婷综合久久久中文字幕| 色婷婷久久久综合中文字幕 | 中日韩av电影| 中文字幕在线视频一区| 一区二区三区精品视频在线| 日韩中文字幕亚洲一区二区va在线| 日本少妇一区二区| 国产精品一线二线三线精华| 91原创在线视频| 欧美久久一二区| 亚洲精品一线二线三线| 中文字幕制服丝袜成人av| 亚洲国产精品一区二区www在线| 免费欧美在线视频| 粉嫩av一区二区三区粉嫩 | 午夜欧美在线一二页| 日本v片在线高清不卡在线观看| 国产高清精品网站| 欧美亚洲国产一区在线观看网站| 欧美va在线播放| 国产精品久久久久久久久快鸭 | 成人综合婷婷国产精品久久蜜臀| 成人av电影免费在线播放| 精品视频在线免费| 久久亚洲二区三区| 亚洲超丰满肉感bbw| 国产剧情一区在线| 在线观看日韩电影| 国产亚洲午夜高清国产拍精品| 日韩理论片一区二区| 久久国产婷婷国产香蕉| 日本福利一区二区| 国产欧美日韩精品在线| 香港成人在线视频| 成人av网在线| 日韩精品一区二| 五月天国产精品| www.爱久久.com| 久久影视一区二区| 秋霞电影一区二区| 日本高清视频一区二区| 中文字幕av免费专区久久| 日本在线观看不卡视频| 日本大香伊一区二区三区| 久久精品日产第一区二区三区高清版| 亚洲国产日日夜夜| 99久久99久久精品国产片果冻| 久久久99免费| 国产在线视频一区二区三区| 欧美精品v国产精品v日韩精品| 亚洲人成在线观看一区二区| 国产精品影视网| www国产成人| 精品一区精品二区高清| 欧美一级欧美三级| 香蕉加勒比综合久久| 欧美无砖砖区免费| 中文字幕亚洲在| 91一区二区在线| 国产精品久久久久三级| 国产很黄免费观看久久| 精品日本一线二线三线不卡| 久久草av在线| 欧美成人video| 六月丁香综合在线视频| 日韩欧美区一区二| 老司机精品视频线观看86| 欧美一二三区精品| 久久精品国产亚洲一区二区三区| 制服丝袜中文字幕一区| 久久黄色级2电影| 日韩一区二区三区视频在线|