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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? tinyxml.h

?? tinyxml project for Visual Studio 2008. A small xml parser, the result is lib file for embedded ARM
?? H
?? 第 1 頁(yè) / 共 5 頁(yè)
字號(hào):
/*www.sourceforge.net/projects/tinyxmlOriginal code (2.0 and earlier )copyright (c) 2000-2006 Lee Thomason (www.grinninglizard.com)This software is provided 'as-is', without any express or impliedwarranty. In no event will the authors be held liable for anydamages arising from the use of this software.Permission is granted to anyone to use this software for anypurpose, including commercial applications, and to alter it andredistribute it freely, subject to the following restrictions:1. The origin of this software must not be misrepresented; you mustnot claim that you wrote the original software. If you use thissoftware in a product, an acknowledgment in the product documentationwould be appreciated but is not required.2. Altered source versions must be plainly marked as such, andmust not be misrepresented as being the original software.3. This notice may not be removed or altered from any sourcedistribution.*/#ifndef TINYXML_INCLUDED#define TINYXML_INCLUDED#ifdef _MSC_VER#pragma warning( push )#pragma warning( disable : 4530 )#pragma warning( disable : 4786 )#endif#include <ctype.h>#include <stdio.h>#include <stdlib.h>#include <string.h>#include <assert.h>// Help out windows:#if defined( _DEBUG ) && !defined( DEBUG )#define DEBUG#endif#ifdef TIXML_USE_STL	#include <string> 	#include <iostream>	#include <sstream>	#define TIXML_STRING		std::string#else	#include "tinystr.h"	#define TIXML_STRING		TiXmlString#endif// Deprecated library function hell. Compilers want to use the// new safe versions. This probably doesn't fully address the problem,// but it gets closer. There are too many compilers for me to fully// test. If you get compilation troubles, undefine TIXML_SAFE//#define TIXML_SAFE#ifdef TIXML_SAFE	#if defined(_MSC_VER) && (_MSC_VER >= 1400 )		// Microsoft visual studio, version 2005 and higher.		#define TIXML_SNPRINTF _snprintf_s		#define TIXML_SNSCANF  _snscanf_s	#elif defined(_MSC_VER) && (_MSC_VER >= 1200 )		// Microsoft visual studio, version 6 and higher.		//#pragma message( "Using _sn* functions." )		#define TIXML_SNPRINTF _snprintf		#define TIXML_SNSCANF  _snscanf	#elif defined(__GNUC__) && (__GNUC__ >= 3 )		// GCC version 3 and higher.s		//#warning( "Using sn* functions." )		#define TIXML_SNPRINTF snprintf		#define TIXML_SNSCANF  snscanf	#endif#endif	class TiXmlDocument;class TiXmlElement;class TiXmlComment;class TiXmlUnknown;class TiXmlAttribute;class TiXmlText;class TiXmlDeclaration;class TiXmlParsingData;const int TIXML_MAJOR_VERSION = 2;const int TIXML_MINOR_VERSION = 5;const int TIXML_PATCH_VERSION = 2;/*	Internal structure for tracking location of items 	in the XML file.*/struct TiXmlCursor{	TiXmlCursor()		{ Clear(); }	void Clear()		{ row = col = -1; }	int row;	// 0 based.	int col;	// 0 based.};/**	If you call the Accept() method, it requires being passed a TiXmlVisitor	class to handle callbacks. For nodes that contain other nodes (Document, Element)	you will get called with a VisitEnter/VisitExit pair. Nodes that are always leaves	are simple called with Visit().	If you return 'true' from a Visit method, recursive parsing will continue. If you return	false, <b>no children of this node or its sibilings</b> will be Visited.	All flavors of Visit methods have a default implementation that returns 'true' (continue 	visiting). You need to only override methods that are interesting to you.	Generally Accept() is called on the TiXmlDocument, although all nodes suppert Visiting.	You should never change the document from a callback.	@sa TiXmlNode::Accept()*/class TiXmlVisitor{public:	virtual ~TiXmlVisitor() {}	/// Visit a document.	virtual bool VisitEnter( const TiXmlDocument& doc )	{ return true; }	/// Visit a document.	virtual bool VisitExit( const TiXmlDocument& doc )	{ return true; }	/// Visit an element.	virtual bool VisitEnter( const TiXmlElement& element, const TiXmlAttribute* firstAttribute )	{ return true; }	/// Visit an element.	virtual bool VisitExit( const TiXmlElement& element )											{ return true; }	/// Visit a declaration	virtual bool Visit( const TiXmlDeclaration& declaration )		{ return true; }	/// Visit a text node	virtual bool Visit( const TiXmlText& text )						{ return true; }	/// Visit a comment node	virtual bool Visit( const TiXmlComment& comment )				{ return true; }	/// Visit an unknow node	virtual bool Visit( const TiXmlUnknown& unknown )				{ return true; }};// Only used by Attribute::Query functionsenum { 	TIXML_SUCCESS,	TIXML_NO_ATTRIBUTE,	TIXML_WRONG_TYPE};// Used by the parsing routines.enum TiXmlEncoding{	TIXML_ENCODING_UNKNOWN,	TIXML_ENCODING_UTF8,	TIXML_ENCODING_LEGACY};const TiXmlEncoding TIXML_DEFAULT_ENCODING = TIXML_ENCODING_UNKNOWN;/** TiXmlBase is a base class for every class in TinyXml.	It does little except to establish that TinyXml classes	can be printed and provide some utility functions.	In XML, the document and elements can contain	other elements and other types of nodes.	@verbatim	A Document can contain:	Element	(container or leaf)							Comment (leaf)							Unknown (leaf)							Declaration( leaf )	An Element can contain:	Element (container or leaf)							Text	(leaf)							Attributes (not on tree)							Comment (leaf)							Unknown (leaf)	A Decleration contains: Attributes (not on tree)	@endverbatim*/class TiXmlBase{	friend class TiXmlNode;	friend class TiXmlElement;	friend class TiXmlDocument;public:	TiXmlBase()	:	userData(0)		{}	virtual ~TiXmlBase()			{}	/**	All TinyXml classes can print themselves to a filestream		or the string class (TiXmlString in non-STL mode, std::string		in STL mode.) Either or both cfile and str can be null.				This is a formatted print, and will insert 		tabs and newlines.				(For an unformatted stream, use the << operator.)	*/	virtual void Print( FILE* cfile, int depth ) const = 0;	/**	The world does not agree on whether white space should be kept or		not. In order to make everyone happy, these global, static functions		are provided to set whether or not TinyXml will condense all white space		into a single space or not. The default is to condense. Note changing this		value is not thread safe.	*/	static void SetCondenseWhiteSpace( bool condense )		{ condenseWhiteSpace = condense; }	/// Return the current white space setting.	static bool IsWhiteSpaceCondensed()						{ return condenseWhiteSpace; }	/** Return the position, in the original source file, of this node or attribute.		The row and column are 1-based. (That is the first row and first column is		1,1). If the returns values are 0 or less, then the parser does not have		a row and column value.		Generally, the row and column value will be set when the TiXmlDocument::Load(),		TiXmlDocument::LoadFile(), or any TiXmlNode::Parse() is called. It will NOT be set		when the DOM was created from operator>>.		The values reflect the initial load. Once the DOM is modified programmatically		(by adding or changing nodes and attributes) the new values will NOT update to		reflect changes in the document.		There is a minor performance cost to computing the row and column. Computation		can be disabled if TiXmlDocument::SetTabSize() is called with 0 as the value.		@sa TiXmlDocument::SetTabSize()	*/	int Row() const			{ return location.row + 1; }	int Column() const		{ return location.col + 1; }	///< See Row()	void  SetUserData( void* user )			{ userData = user; }	///< Set a pointer to arbitrary user data.	void* GetUserData()						{ return userData; }	///< Get a pointer to arbitrary user data.	const void* GetUserData() const 		{ return userData; }	///< Get a pointer to arbitrary user data.	// Table that returs, for a given lead byte, the total number of bytes	// in the UTF-8 sequence.	static const int utf8ByteTable[256];	virtual const char* Parse(	const char* p, 								TiXmlParsingData* data, 								TiXmlEncoding encoding /*= TIXML_ENCODING_UNKNOWN */ ) = 0;	enum	{		TIXML_NO_ERROR = 0,		TIXML_ERROR,		TIXML_ERROR_OPENING_FILE,		TIXML_ERROR_OUT_OF_MEMORY,		TIXML_ERROR_PARSING_ELEMENT,		TIXML_ERROR_FAILED_TO_READ_ELEMENT_NAME,		TIXML_ERROR_READING_ELEMENT_VALUE,		TIXML_ERROR_READING_ATTRIBUTES,		TIXML_ERROR_PARSING_EMPTY,		TIXML_ERROR_READING_END_TAG,		TIXML_ERROR_PARSING_UNKNOWN,		TIXML_ERROR_PARSING_COMMENT,		TIXML_ERROR_PARSING_DECLARATION,		TIXML_ERROR_DOCUMENT_EMPTY,		TIXML_ERROR_EMBEDDED_NULL,		TIXML_ERROR_PARSING_CDATA,		TIXML_ERROR_DOCUMENT_TOP_ONLY,		TIXML_ERROR_STRING_COUNT	};protected:	static const char* SkipWhiteSpace( const char*, TiXmlEncoding encoding );	inline static bool IsWhiteSpace( char c )			{ 		return ( isspace( (unsigned char) c ) || c == '\n' || c == '\r' ); 	}	inline static bool IsWhiteSpace( int c )	{		if ( c < 256 )			return IsWhiteSpace( (char) c );		return false;	// Again, only truly correct for English/Latin...but usually works.	}	#ifdef TIXML_USE_STL	static bool	StreamWhiteSpace( std::istream * in, TIXML_STRING * tag );	static bool StreamTo( std::istream * in, int character, TIXML_STRING * tag );	#endif	/*	Reads an XML name into the string provided. Returns		a pointer just past the last character of the name,		or 0 if the function has an error.	*/	static const char* ReadName( const char* p, TIXML_STRING* name, TiXmlEncoding encoding );	/*	Reads text. Returns a pointer past the given end tag.		Wickedly complex options, but it keeps the (sensitive) code in one place.	*/	static const char* ReadText(	const char* in,				// where to start									TIXML_STRING* text,			// the string read									bool ignoreWhiteSpace,		// whether to keep the white space									const char* endTag,			// what ends this text									bool ignoreCase,			// whether to ignore case in the end tag									TiXmlEncoding encoding );	// the current encoding	// If an entity has been found, transform it into a character.	static const char* GetEntity( const char* in, char* value, int* length, TiXmlEncoding encoding );	// Get a character, while interpreting entities.	// The length can be from 0 to 4 bytes.	inline static const char* GetChar( const char* p, char* _value, int* length, TiXmlEncoding encoding )	{		assert( p );		if ( encoding == TIXML_ENCODING_UTF8 )		{			*length = utf8ByteTable[ *((const unsigned char*)p) ];			assert( *length >= 0 && *length < 5 );		}		else		{			*length = 1;		}		if ( *length == 1 )		{			if ( *p == '&' )				return GetEntity( p, _value, length, encoding );			*_value = *p;			return p+1;		}		else if ( *length )		{			//strncpy( _value, p, *length );	// lots of compilers don't like this function (unsafe),												// and the null terminator isn't needed			for( int i=0; p[i] && i<*length; ++i ) {				_value[i] = p[i];			}			return p + (*length);		}		else		{			// Not valid text.			return 0;		}	}	// Puts a string to a stream, expanding entities as it goes.	// Note this should not contian the '<', '>', etc, or they will be transformed into entities!	static void PutString( const TIXML_STRING& str, TIXML_STRING* out );

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产精品久久久久久久久久免费看| 亚洲一区在线看| 91精品办公室少妇高潮对白| 国产大陆精品国产| 精品影视av免费| 久久青草国产手机看片福利盒子 | 精品国产免费久久| 成人国产免费视频| 九色porny丨国产精品| 日韩欧美的一区| 91免费版pro下载短视频| 国产精品影音先锋| av一区二区三区四区| 91猫先生在线| 欧美老年两性高潮| 日韩精品一区二区三区四区视频| 欧美一区二区久久| 国产亚洲成av人在线观看导航| 国产三级精品三级在线专区| 国产精品美女久久久久久久网站| 中文字幕字幕中文在线中不卡视频| 国产精品久久二区二区| 亚洲一区二区三区国产| 奇米影视一区二区三区| 国产精品一二三在| 在线免费观看日本欧美| 日韩免费高清视频| 国产视频不卡一区| 亚洲图片一区二区| 国产自产2019最新不卡| 丁香婷婷综合色啪| 99久久久久久| 欧美r级在线观看| 国产精品久久综合| 首页国产欧美久久| 成人黄色av网站在线| 欧美综合一区二区三区| 日韩一区二区三区四区| 中文字幕第一页久久| 亚洲成人精品一区| 国产一区999| 日本乱人伦一区| 久久午夜免费电影| 午夜av一区二区| 成人激情综合网站| 欧美久久久久久久久久| 欧美激情一二三区| 美女脱光内衣内裤视频久久网站 | 一区二区三区在线看| 香蕉av福利精品导航| 黄色精品一二区| 捆绑紧缚一区二区三区视频| 懂色中文一区二区在线播放| 亚洲精品高清视频在线观看| 亚洲国产精品久久一线不卡| 国产风韵犹存在线视精品| 91网站最新网址| 国产精品欧美一级免费| 国产真实乱子伦精品视频| 欧美视频第二页| 亚洲女同一区二区| a亚洲天堂av| 久久精品欧美一区二区三区不卡| 日韩精品视频网| 欧美在线色视频| 中文字幕一区三区| 国产成人8x视频一区二区| 精品成人在线观看| 美女性感视频久久| 在线不卡欧美精品一区二区三区| 亚洲精品久久7777| 欧美影院精品一区| 一区二区三区不卡视频| 色综合天天性综合| 亚洲免费伊人电影| 一本一道综合狠狠老| 亚洲日本va午夜在线影院| www.欧美.com| 亚洲人妖av一区二区| 99精品桃花视频在线观看| 国产精品美女久久久久aⅴ国产馆| 国产一区二区三区四区五区美女| 欧美久久久久久久久| 久久国产三级精品| 久久奇米777| 99在线热播精品免费| 一区二区三区精密机械公司| 99久久777色| 亚洲男女一区二区三区| 欧美男男青年gay1069videost| 香港成人在线视频| 久久综合成人精品亚洲另类欧美| 成人一区在线看| 伊人开心综合网| 日韩一区二区三区四区五区六区| 国产一区二区毛片| 中文字幕av一区二区三区| 91蜜桃视频在线| 日韩国产一二三区| 久久精品综合网| 欧美综合天天夜夜久久| 青青草97国产精品免费观看| www久久久久| 亚洲综合男人的天堂| 国产拍欧美日韩视频二区| 成人性生交大片| 图片区小说区国产精品视频| 精品国产成人在线影院 | 亚洲一区二区三区美女| 日韩精品最新网址| 99国产精品久久久久久久久久 | 91老师国产黑色丝袜在线| 亚洲成av人综合在线观看| 精品国产亚洲一区二区三区在线观看| 成人动漫精品一区二区| 午夜影院久久久| 国产精品久久99| 欧美一区二区三区视频免费播放 | 国产成人精品三级麻豆| 亚洲在线免费播放| 亚洲精品一区二区三区香蕉| 成人av网站大全| 日韩电影免费在线观看网站| 中文字幕av不卡| 日韩美女视频在线| 在线观看视频欧美| 99精品视频在线免费观看| 美女视频黄久久| 亚洲一级二级在线| 国产精品久久久久久亚洲毛片| 欧美疯狂性受xxxxx喷水图片| 成人午夜视频网站| 狠狠色狠狠色综合系列| 午夜久久久久久久久久一区二区| 国产日韩欧美精品电影三级在线| 欧美一区二区三区爱爱| 色综合久久综合网| 成人精品国产一区二区4080| 蜜桃av一区二区| 欧美国产一区视频在线观看| 精品国产123| 欧美一区二区人人喊爽| 欧美精品精品一区| 欧美亚洲自拍偷拍| 欧美性大战久久久| 99久久婷婷国产综合精品电影| 国产成人精品三级| 久久99国产精品尤物| 狂野欧美性猛交blacked| 日本不卡视频一二三区| 奇米影视一区二区三区小说| 天天综合色天天| 男男gaygay亚洲| 精品亚洲免费视频| 国产综合成人久久大片91| 国产一区中文字幕| 国产精品香蕉一区二区三区| 国产91丝袜在线观看| 成人深夜在线观看| 91污片在线观看| 欧美视频中文字幕| 欧美一区二区三区四区高清| 欧美变态凌虐bdsm| 国产女人18水真多18精品一级做| 国产日产欧美一区| 亚洲精品视频在线| 日韩黄色小视频| 国产成人精品免费在线| 91蜜桃视频在线| 51久久夜色精品国产麻豆| 欧美mv日韩mv国产| 精品av综合导航| 国产精品美女久久福利网站| 国产午夜精品一区二区| 日韩美女啊v在线免费观看| 亚洲一区精品在线| 国产综合色产在线精品| caoporn国产精品| 在线中文字幕一区| 精品日韩欧美一区二区| 亚洲欧洲色图综合| 免费观看成人av| aaa亚洲精品| 日韩片之四级片| 久久久www免费人成精品| 亚洲日本在线观看| 久久成人羞羞网站| 99免费精品视频| av在线不卡观看免费观看| 欧美一区二区三区视频免费播放| 国产精品美女一区二区在线观看| 中文字幕在线不卡| 久久国产三级精品| 色婷婷亚洲精品| 久久尤物电影视频在线观看| 一区二区三区视频在线看| 韩国女主播成人在线观看| 国产精品911| 91免费观看视频| 久久久精品综合|