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

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

?? tinyxml.h

?? tinyxml project for Visual Studio 2008. A small xml parser, the result is lib file for embedded ARM
?? H
?? 第 1 頁 / 共 5 頁
字號:
	/** 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.	*/	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() const	{ return errorLocation.row+1; }	int ErrorCol() const	{ return errorLocation.col+1; }	///< The column where the error occured. See ErrorRow()	/** SetTabSize() allows the error reporting functions (ErrorRow() and ErrorCol())		to report the correct values for row and column. It does not change the output		or input in any way.				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		TiXmlDocument 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; 											}	/** Write the document to standard out using formatted printing ("pretty print"). */	void Print() const						{ Print( stdout, 0 ); }	/* Write the document to a string using formatted printing ("pretty print"). This		will allocate a character array (new char[]) and return it as a pointer. The		calling code pust call delete[] on the return char* to avoid a memory leak.	*/	//char* PrintToMemory() const; 	/// Print this Document to a FILE stream.	virtual void Print( FILE* cfile, int depth = 0 ) const;	// [internal use]	void SetError( int err, const char* errorLocation, TiXmlParsingData* prevData, TiXmlEncoding encoding );	virtual const TiXmlDocument*    ToDocument()    const { return this; } ///< Cast to a more defined type. Will return null not of the requested type.	virtual TiXmlDocument*          ToDocument()          { return this; } ///< Cast to a more defined type. Will return null not of the requested type.	/** Walk the XML tree visiting this node and all of its children. 	*/	virtual bool Accept( TiXmlVisitor* content ) const;protected :	// [internal use]	virtual TiXmlNode* Clone() const;	#ifdef TIXML_USE_STL	virtual void StreamIn( std::istream * in, TIXML_STRING * tag );	#endifprivate:	void CopyTo( TiXmlDocument* target ) const;	bool error;	int  errorId;	TIXML_STRING errorDesc;	int tabsize;	TiXmlCursor errorLocation;	bool useMicrosoftBOM;		// the UTF-8 BOM were found when read. Note this, and try to write.};/**	A TiXmlHandle is a class that wraps a node pointer with null checks; this is	an incredibly useful thing. Note that TiXmlHandle 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	TiXmlElement* root = document.FirstChildElement( "Document" );	if ( root )	{		TiXmlElement* element = root->FirstChildElement( "Element" );		if ( element )		{			TiXmlElement* child = element->FirstChildElement( "Child" );			if ( child )			{				TiXmlElement* child2 = child->NextSiblingElement( "Child" );				if ( child2 )				{					// Finally do something useful.	@endverbatim	And that doesn't even cover "else" cases. TiXmlHandle addresses the verbosity	of such code. A TiXmlHandle checks for null	pointers so it is perfectly safe 	and correct to use:	@verbatim	TiXmlHandle docHandle( &document );	TiXmlElement* child2 = docHandle.FirstChild( "Document" ).FirstChild( "Element" ).Child( "Child", 1 ).ToElement();	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	TiXmlHandle handleCopy = handle;	@endverbatim	What they should not be used for is iteration:	@verbatim	int i=0; 	while ( true )	{		TiXmlElement* child = docHandle.FirstChild( "Document" ).FirstChild( "Element" ).Child( "Child", i ).ToElement();		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	TiXmlElement* child = docHandle.FirstChild( "Document" ).FirstChild( "Element" ).FirstChild( "Child" ).ToElement();	for( child; child; child=child->NextSiblingElement() )	{		// do something	}	@endverbatim*/class TiXmlHandle{public:	/// Create a handle from any node (at any depth of the tree.) This can be a null pointer.	TiXmlHandle( TiXmlNode* _node )					{ this->node = _node; }	/// Copy constructor	TiXmlHandle( const TiXmlHandle& ref )			{ this->node = ref.node; }	TiXmlHandle operator=( const TiXmlHandle& ref ) { this->node = ref.node; return *this; }	/// Return a handle to the first child node.	TiXmlHandle FirstChild() const;	/// Return a handle to the first child node with the given name.	TiXmlHandle FirstChild( const char * value ) const;	/// Return a handle to the first child element.	TiXmlHandle FirstChildElement() const;	/// Return a handle to the first child element with the given name.	TiXmlHandle 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.	*/	TiXmlHandle Child( const char* value, int index ) const;	/** Return a handle to the "index" child. 		The first child is 0, the second 1, etc.	*/	TiXmlHandle 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.	*/	TiXmlHandle 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.	*/	TiXmlHandle ChildElement( int index ) const;	#ifdef TIXML_USE_STL	TiXmlHandle FirstChild( const std::string& _value ) const				{ return FirstChild( _value.c_str() ); }	TiXmlHandle FirstChildElement( const std::string& _value ) const		{ return FirstChildElement( _value.c_str() ); }	TiXmlHandle Child( const std::string& _value, int index ) const			{ return Child( _value.c_str(), index ); }	TiXmlHandle ChildElement( const std::string& _value, int index ) const	{ return ChildElement( _value.c_str(), index ); }	#endif	/** Return the handle as a TiXmlNode. This may return null.	*/	TiXmlNode* ToNode() const			{ return node; } 	/** Return the handle as a TiXmlElement. This may return null.	*/	TiXmlElement* ToElement() const		{ return ( ( node && node->ToElement() ) ? node->ToElement() : 0 ); }	/**	Return the handle as a TiXmlText. This may return null.	*/	TiXmlText* ToText() const			{ return ( ( node && node->ToText() ) ? node->ToText() : 0 ); }	/** Return the handle as a TiXmlUnknown. This may return null.	*/	TiXmlUnknown* ToUnknown() const		{ return ( ( node && node->ToUnknown() ) ? node->ToUnknown() : 0 ); }	/** @deprecated use ToNode. 		Return the handle as a TiXmlNode. This may return null.	*/	TiXmlNode* Node() const			{ return ToNode(); } 	/** @deprecated use ToElement. 		Return the handle as a TiXmlElement. This may return null.	*/	TiXmlElement* Element() const	{ return ToElement(); }	/**	@deprecated use ToText()		Return the handle as a TiXmlText. This may return null.	*/	TiXmlText* Text() const			{ return ToText(); }	/** @deprecated use ToUnknown()		Return the handle as a TiXmlUnknown. This may return null.	*/	TiXmlUnknown* Unknown() const	{ return ToUnknown(); }private:	TiXmlNode* node;};/** Print to memory functionality. The TiXmlPrinter is useful when you need to:	-# Print to memory (especially in non-STL mode)	-# Control formatting (line endings, etc.)	When constructed, the TiXmlPrinter is in its default "pretty printing" mode.	Before calling Accept() you can call methods to control the printing	of the XML document. After TiXmlNode::Accept() is called, the printed document can	be accessed via the CStr(), Str(), and Size() methods.	TiXmlPrinter uses the Visitor API.	@verbatim	TiXmlPrinter printer;	printer.SetIndent( "\t" );	doc.Accept( &printer );	fprintf( stdout, "%s", printer.CStr() );	@endverbatim*/class TiXmlPrinter : public TiXmlVisitor{public:	TiXmlPrinter() : depth( 0 ), simpleTextPrint( false ),					 buffer(), indent( "    " ), lineBreak( "\n" ) {}	virtual bool VisitEnter( const TiXmlDocument& doc );	virtual bool VisitExit( const TiXmlDocument& doc );	virtual bool VisitEnter( const TiXmlElement& element, const TiXmlAttribute* firstAttribute );	virtual bool VisitExit( const TiXmlElement& element );	virtual bool Visit( const TiXmlDeclaration& declaration );	virtual bool Visit( const TiXmlText& text );	virtual bool Visit( const TiXmlComment& comment );	virtual bool Visit( const TiXmlUnknown& unknown );	/** Set the indent characters for printing. By default 4 spaces		but tab (\t) is also useful, or null/empty string for no indentation.	*/	void SetIndent( const char* _indent )			{ indent = _indent ? _indent : "" ; }	/// Query the indention string.	const char* Indent()							{ return indent.c_str(); }	/** Set the line breaking string. By default set to newline (\n). 		Some operating systems prefer other characters, or can be		set to the null/empty string for no indenation.	*/	void SetLineBreak( const char* _lineBreak )		{ lineBreak = _lineBreak ? _lineBreak : ""; }	/// Query the current line breaking string.	const char* LineBreak()							{ return lineBreak.c_str(); }	/** Switch over to "stream printing" which is the most dense formatting without 		linebreaks. Common when the XML is needed for network transmission.	*/	void SetStreamPrinting()						{ indent = "";													  lineBreak = "";													}		/// Return the result.	const char* CStr()								{ return buffer.c_str(); }	/// Return the length of the result string.	size_t Size()									{ return buffer.size(); }	#ifdef TIXML_USE_STL	/// Return the result.	const std::string& Str()						{ return buffer; }	#endifprivate:	void DoIndent()	{		for( int i=0; i<depth; ++i )			buffer += indent;	}	void DoLineBreak() {		buffer += lineBreak;	}	int depth;	bool simpleTextPrint;	TIXML_STRING buffer;	TIXML_STRING indent;	TIXML_STRING lineBreak;};#ifdef _MSC_VER#pragma warning( pop )#endif#endif

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产日韩欧美a| 国内一区二区在线| 91麻豆国产在线观看| 国产精品麻豆一区二区| 成人久久18免费网站麻豆| 国产精品卡一卡二卡三| av影院午夜一区| 亚洲一级不卡视频| 欧美一区在线视频| 国产一区二区免费看| 中文字幕中文字幕在线一区 | 国产精品不卡在线观看| 色综合久久综合网| 日韩—二三区免费观看av| 亚洲精品高清在线| 国产91清纯白嫩初高中在线观看| 国产精品每日更新在线播放网址| 欧美专区亚洲专区| 另类小说欧美激情| 亚洲欧美一区二区视频| 欧美日韩免费不卡视频一区二区三区| 久久精品国产亚洲高清剧情介绍| 日本一区二区成人在线| 欧美在线一区二区三区| 国产一区二区在线影院| 亚洲一区中文日韩| 久久久久久久精| 在线观看欧美日本| 国产一区二区三区四区五区入口 | 日韩欧美中文字幕一区| 成人av动漫网站| 日韩有码一区二区三区| 国产精品久久久久久久久果冻传媒| 欧美日韩午夜在线视频| 成人午夜视频免费看| 日本不卡中文字幕| 亚洲欧美另类小说| www日韩大片| 精品视频色一区| 成人一区二区三区视频在线观看| 五月综合激情日本mⅴ| 国产精品嫩草影院av蜜臀| 欧美一区二区在线不卡| 色婷婷国产精品综合在线观看| 久久99久国产精品黄毛片色诱| 亚洲精品乱码久久久久久黑人 | 免费成人深夜小野草| 亚洲激情一二三区| 欧美国产禁国产网站cc| 日韩免费成人网| 欧美日韩美女一区二区| 91色porny| 成人午夜在线视频| 国产精品亚洲成人| 久久国产精品一区二区| 亚洲va韩国va欧美va精品| 亚洲色图视频网站| 久久精品亚洲精品国产欧美kt∨| 99久久综合99久久综合网站| 老司机午夜精品| 亚洲成人www| 亚洲欧美日韩国产一区二区三区| 国产亚洲成av人在线观看导航| 日韩写真欧美这视频| 在线播放一区二区三区| 欧美少妇一区二区| 在线观看亚洲一区| 色婷婷亚洲一区二区三区| 成人高清免费观看| 福利电影一区二区| 国产精品18久久久久久久网站| 免费在线观看视频一区| 日韩国产欧美视频| 首页欧美精品中文字幕| 亚洲国产精品自拍| 亚洲一二三区视频在线观看| 一区二区三区中文在线观看| 亚洲码国产岛国毛片在线| 中文字幕亚洲区| 亚洲同性gay激情无套| 国产精品久久久久久久久快鸭 | 成人免费观看视频| 亚洲va欧美va人人爽| 亚洲综合区在线| 亚洲1区2区3区视频| 亚洲成a人片在线观看中文| 亚洲成人在线观看视频| 视频一区免费在线观看| 日韩av一区二| 国内精品国产成人国产三级粉色 | 国产成人在线网站| 国产v日产∨综合v精品视频| 成人av影视在线观看| 91小视频在线免费看| 欧美在线一区二区| 日韩一区二区三区电影在线观看 | 欧美日韩精品欧美日韩精品一| 欧美日韩久久一区| 日韩欧美国产综合| 久久精品一区蜜桃臀影院| 天堂久久一区二区三区| 国产一区二区福利视频| 国产毛片精品国产一区二区三区| 激情文学综合插| 高清久久久久久| 在线看国产日韩| 欧美一区二区三区免费观看视频 | 国产乱码精品1区2区3区| 国产a级毛片一区| 色悠悠久久综合| 欧美精品777| 国产精品情趣视频| 亚洲图片有声小说| 国产中文一区二区三区| 色综合中文综合网| 欧美精品一区二区三区在线播放| 国产精品视频一二三| 精品国产免费一区二区三区四区| 一区二区三区国产| 午夜视频久久久久久| 国产在线国偷精品免费看| 白白色亚洲国产精品| 91精品国产综合久久国产大片| 久久久夜色精品亚洲| 亚洲欧美日韩在线不卡| 久久不见久久见中文字幕免费| 成人av综合在线| 日韩一级高清毛片| 亚洲自拍偷拍综合| 国产精品18久久久久久久网站| 欧美午夜精品一区二区蜜桃| 国产日韩高清在线| 日韩国产欧美在线观看| 91捆绑美女网站| 国产精品蜜臀在线观看| 日本成人中文字幕| 日本高清无吗v一区| 国产亲近乱来精品视频| 视频一区二区中文字幕| 91久久精品午夜一区二区| 久久这里只有精品6| 婷婷久久综合九色综合伊人色| 成人av资源下载| 国产亚洲精久久久久久| 中文字幕中文字幕在线一区| 蜜桃视频在线一区| 色综合久久久久综合| 国产午夜精品理论片a级大结局| 亚洲第四色夜色| 99re这里只有精品6| 国产欧美一区二区精品久导航| 视频一区在线播放| 欧美在线免费观看亚洲| 亚洲天堂av一区| 大白屁股一区二区视频| 久久五月婷婷丁香社区| 理论片日本一区| 日韩欧美中文字幕一区| 日韩av午夜在线观看| 欧美性大战久久久久久久| 亚洲欧美日韩小说| 色香色香欲天天天影视综合网| 国产精品无码永久免费888| 国产一区二区三区香蕉| 欧美精品一区二区在线播放| 精品夜夜嗨av一区二区三区| 精品国产99国产精品| 偷窥少妇高潮呻吟av久久免费| 欧美日韩国产综合一区二区三区 | 91麻豆国产福利精品| 国产午夜亚洲精品不卡| 精品久久一区二区| 蜜桃精品视频在线观看| 91精品国产91综合久久蜜臀| 五月婷婷色综合| 日韩一级二级三级| 国模冰冰炮一区二区| 欧美经典一区二区三区| 成人成人成人在线视频| 最近中文字幕一区二区三区| 色呦呦网站一区| 亚洲国产成人高清精品| 91精品国产欧美一区二区18| 麻豆极品一区二区三区| 久久久久久久久久久黄色| 成人免费视频一区| 亚洲日本va午夜在线电影| 欧美在线看片a免费观看| 亚洲va国产天堂va久久en| 日韩欧美国产一二三区| 国产高清不卡一区| 亚洲日本免费电影| 欧美男同性恋视频网站| 极品销魂美女一区二区三区| 国产亲近乱来精品视频| 欧美这里有精品| 国产一区二区网址| 亚洲精品成人悠悠色影视| 欧美一区二区三区视频免费播放| 国产激情视频一区二区在线观看 |