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

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

?? tinyxmlparser.cpp

?? wince設(shè)置MUTE,設(shè)置設(shè)備靜音的代碼CE下。
?? CPP
?? 第 1 頁 / 共 3 頁
字號(hào):
/*www.sourceforge.net/projects/tinyxmlOriginal code (2.0 and earlier )copyright (c) 2000-2002 Lee Thomason (www.grinninglizard.com)This software is provided 'as-is', without any express or implied warranty. In no event will the authors be held liable for any damages arising from the use of this software.Permission is granted to anyone to use this software for any purpose, including commercial applications, and to alter it and redistribute it freely, subject to the following restrictions:1. The origin of this software must not be misrepresented; you must not 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, and must not be misrepresented as being the original software.3. This notice may not be removed or altered from any source distribution.*/#include <ctype.h>#include <stddef.h>#include "tinyxml.h"//#define DEBUG_PARSER#if defined( DEBUG_PARSER )#	if defined( DEBUG ) && defined( _MSC_VER )#		include <windows.h>#		define TIXML_LOG OutputDebugString#	else#		define TIXML_LOG printf#	endif#endif// Note tha "PutString" hardcodes the same list. This// is less flexible than it appears. Changing the entries// or order will break putstring.	TiXmlBase::Entity TiXmlBase::entity[ NUM_ENTITY ] = {	{ "&amp;",  5, '&' },	{ "&lt;",   4, '<' },	{ "&gt;",   4, '>' },	{ "&quot;", 6, '\"' },	{ "&apos;", 6, '\'' }};// Bunch of unicode info at://		http://www.unicode.org/faq/utf_bom.html// Including the basic of this table, which determines the #bytes in the// sequence from the lead byte. 1 placed for invalid sequences --// although the result will be junk, pass it through as much as possible.// Beware of the non-characters in UTF-8:	//				ef bb bf (Microsoft "lead bytes")//				ef bf be//				ef bf bf const unsigned char TIXML_UTF_LEAD_0 = 0xefU;const unsigned char TIXML_UTF_LEAD_1 = 0xbbU;const unsigned char TIXML_UTF_LEAD_2 = 0xbfU;const int TiXmlBase::utf8ByteTable[256] = {	//	0	1	2	3	4	5	6	7	8	9	a	b	c	d	e	f		1,	1,	1,	1,	1,	1,	1,	1,	1,	1,	1,	1,	1,	1,	1,	1,	// 0x00		1,	1,	1,	1,	1,	1,	1,	1,	1,	1,	1,	1,	1,	1,	1,	1,	// 0x10		1,	1,	1,	1,	1,	1,	1,	1,	1,	1,	1,	1,	1,	1,	1,	1,	// 0x20		1,	1,	1,	1,	1,	1,	1,	1,	1,	1,	1,	1,	1,	1,	1,	1,	// 0x30		1,	1,	1,	1,	1,	1,	1,	1,	1,	1,	1,	1,	1,	1,	1,	1,	// 0x40		1,	1,	1,	1,	1,	1,	1,	1,	1,	1,	1,	1,	1,	1,	1,	1,	// 0x50		1,	1,	1,	1,	1,	1,	1,	1,	1,	1,	1,	1,	1,	1,	1,	1,	// 0x60		1,	1,	1,	1,	1,	1,	1,	1,	1,	1,	1,	1,	1,	1,	1,	1,	// 0x70	End of ASCII range		1,	1,	1,	1,	1,	1,	1,	1,	1,	1,	1,	1,	1,	1,	1,	1,	// 0x80 0x80 to 0xc1 invalid		1,	1,	1,	1,	1,	1,	1,	1,	1,	1,	1,	1,	1,	1,	1,	1,	// 0x90 		1,	1,	1,	1,	1,	1,	1,	1,	1,	1,	1,	1,	1,	1,	1,	1,	// 0xa0 		1,	1,	1,	1,	1,	1,	1,	1,	1,	1,	1,	1,	1,	1,	1,	1,	// 0xb0 		1,	1,	2,	2,	2,	2,	2,	2,	2,	2,	2,	2,	2,	2,	2,	2,	// 0xc0 0xc2 to 0xdf 2 byte		2,	2,	2,	2,	2,	2,	2,	2,	2,	2,	2,	2,	2,	2,	2,	2,	// 0xd0		3,	3,	3,	3,	3,	3,	3,	3,	3,	3,	3,	3,	3,	3,	3,	3,	// 0xe0 0xe0 to 0xef 3 byte		4,	4,	4,	4,	4,	1,	1,	1,	1,	1,	1,	1,	1,	1,	1,	1	// 0xf0 0xf0 to 0xf4 4 byte, 0xf5 and higher invalid};void TiXmlBase::ConvertUTF32ToUTF8( unsigned long input, char* output, int* length ){	const unsigned long BYTE_MASK = 0xBF;	const unsigned long BYTE_MARK = 0x80;	const unsigned long FIRST_BYTE_MARK[7] = { 0x00, 0x00, 0xC0, 0xE0, 0xF0, 0xF8, 0xFC };	if (input < 0x80) 		*length = 1;	else if ( input < 0x800 )		*length = 2;	else if ( input < 0x10000 )		*length = 3;	else if ( input < 0x200000 )		*length = 4;	else		{ *length = 0; return; }	// This code won't covert this correctly anyway.	output += *length;	// Scary scary fall throughs.	switch (*length) 	{		case 4:			--output; 			*output = (char)((input | BYTE_MARK) & BYTE_MASK); 			input >>= 6;		case 3:			--output; 			*output = (char)((input | BYTE_MARK) & BYTE_MASK); 			input >>= 6;		case 2:			--output; 			*output = (char)((input | BYTE_MARK) & BYTE_MASK); 			input >>= 6;		case 1:			--output; 			*output = (char)(input | FIRST_BYTE_MARK[*length]);	}}/*static*/ int TiXmlBase::IsAlpha( unsigned char anyByte, TiXmlEncoding /*encoding*/ ){	// This will only work for low-ascii, everything else is assumed to be a valid	// letter. I'm not sure this is the best approach, but it is quite tricky trying	// to figure out alhabetical vs. not across encoding. So take a very 	// conservative approach.//	if ( encoding == TIXML_ENCODING_UTF8 )//	{		if ( anyByte < 127 )			return isalpha( anyByte );		else			return 1;	// What else to do? The unicode set is huge...get the english ones right.//	}//	else//	{//		return isalpha( anyByte );//	}}/*static*/ int TiXmlBase::IsAlphaNum( unsigned char anyByte, TiXmlEncoding /*encoding*/ ){	// This will only work for low-ascii, everything else is assumed to be a valid	// letter. I'm not sure this is the best approach, but it is quite tricky trying	// to figure out alhabetical vs. not across encoding. So take a very 	// conservative approach.//	if ( encoding == TIXML_ENCODING_UTF8 )//	{		if ( anyByte < 127 )			return isalnum( anyByte );		else			return 1;	// What else to do? The unicode set is huge...get the english ones right.//	}//	else//	{//		return isalnum( anyByte );//	}}class TiXmlParsingData{	friend class TiXmlDocument;  public:	void Stamp( const char* now, TiXmlEncoding encoding );	const TiXmlCursor& Cursor()	{ return cursor; }  private:	// Only used by the document!	TiXmlParsingData( const char* start, int _tabsize, int row, int col )	{		assert( start );		stamp = start;		tabsize = _tabsize;		cursor.row = row;		cursor.col = col;	}	TiXmlCursor		cursor;	const char*		stamp;	int				tabsize;};void TiXmlParsingData::Stamp( const char* now, TiXmlEncoding encoding ){	assert( now );	// Do nothing if the tabsize is 0.	if ( tabsize < 1 )	{		return;	}	// Get the current row, column.	int row = cursor.row;	int col = cursor.col;	const char* p = stamp;	assert( p );	while ( p < now )	{		// Treat p as unsigned, so we have a happy compiler.		const unsigned char* pU = (const unsigned char*)p;		// Code contributed by Fletcher Dunn: (modified by lee)		switch (*pU) {			case 0:				// We *should* never get here, but in case we do, don't				// advance past the terminating null character, ever				return;			case '\r':				// bump down to the next line				++row;				col = 0;								// Eat the character				++p;				// Check for \r\n sequence, and treat this as a single character				if (*p == '\n') {					++p;				}				break;			case '\n':				// bump down to the next line				++row;				col = 0;				// Eat the character				++p;				// Check for \n\r sequence, and treat this as a single				// character.  (Yes, this bizarre thing does occur still				// on some arcane platforms...)				if (*p == '\r') {					++p;				}				break;			case '\t':				// Eat the character				++p;				// Skip to next tab stop				col = (col / tabsize + 1) * tabsize;				break;			case TIXML_UTF_LEAD_0:				if ( encoding == TIXML_ENCODING_UTF8 )				{					if ( *(p+1) && *(p+2) )					{						// In these cases, don't advance the column. These are						// 0-width spaces.						if ( *(pU+1)==TIXML_UTF_LEAD_1 && *(pU+2)==TIXML_UTF_LEAD_2 )							p += 3;							else if ( *(pU+1)==0xbfU && *(pU+2)==0xbeU )							p += 3;							else if ( *(pU+1)==0xbfU && *(pU+2)==0xbfU )							p += 3;							else							{ p +=3; ++col; }	// A normal character.					}				}				else				{					++p;					++col;				}				break;			default:				if ( encoding == TIXML_ENCODING_UTF8 )				{					// Eat the 1 to 4 byte utf8 character.					int step = TiXmlBase::utf8ByteTable[*((const unsigned char*)p)];					if ( step == 0 )						step = 1;		// Error case from bad encoding, but handle gracefully.					p += step;					// Just advance one column, of course.					++col;				}				else				{					++p;					++col;				}				break;		}	}	cursor.row = row;	cursor.col = col;	assert( cursor.row >= -1 );	assert( cursor.col >= -1 );	stamp = p;	assert( stamp );}const char* TiXmlBase::SkipWhiteSpace( const char* p, TiXmlEncoding encoding ){	if ( !p || !*p )	{		return 0;	}	if ( encoding == TIXML_ENCODING_UTF8 )	{		while ( *p )		{			const unsigned char* pU = (const unsigned char*)p;						// Skip the stupid Microsoft UTF-8 Byte order marks			if (	*(pU+0)==TIXML_UTF_LEAD_0				 && *(pU+1)==TIXML_UTF_LEAD_1 				 && *(pU+2)==TIXML_UTF_LEAD_2 )			{				p += 3;				continue;			}			else if(*(pU+0)==TIXML_UTF_LEAD_0				 && *(pU+1)==0xbfU				 && *(pU+2)==0xbeU )			{				p += 3;				continue;			}			else if(*(pU+0)==TIXML_UTF_LEAD_0				 && *(pU+1)==0xbfU				 && *(pU+2)==0xbfU )			{				p += 3;				continue;			}			if ( IsWhiteSpace( *p ) || *p == '\n' || *p =='\r' )		// Still using old rules for white space.				++p;			else				break;		}	}	else	{		while ( *p && IsWhiteSpace( *p ) || *p == '\n' || *p =='\r' )			++p;	}	return p;}#ifdef TIXML_USE_STL/*static*/ bool TiXmlBase::StreamWhiteSpace( std::istream * in, TIXML_STRING * tag ){	for( ;; )	{		if ( !in->good() ) return false;		int c = in->peek();		// At this scope, we can't get to a document. So fail silently.		if ( !IsWhiteSpace( c ) || c <= 0 )			return true;		*tag += (char) in->get();	}}/*static*/ bool TiXmlBase::StreamTo( std::istream * in, int character, TIXML_STRING * tag ){	//assert( character > 0 && character < 128 );	// else it won't work in utf-8	while ( in->good() )	{		int c = in->peek();		if ( c == character )			return true;		if ( c <= 0 )		// Silent failure: can't get document at this scope			return false;		in->get();		*tag += (char) c;	}	return false;}#endif// One of TinyXML's more performance demanding functions. Try to keep the memory overhead down. The// "assign" optimization removes over 10% of the execution time.//const char* TiXmlBase::ReadName( const char* p, TIXML_STRING * name, TiXmlEncoding encoding ){	// Oddly, not supported on some comilers,	//name->clear();	// So use this:	*name = "";	assert( p );	// Names start with letters or underscores.	// Of course, in unicode, tinyxml has no idea what a letter *is*. The	// algorithm is generous.	//	// After that, they can be letters, underscores, numbers,	// hyphens, or colons. (Colons are valid ony for namespaces,	// but tinyxml can't tell namespaces from names.)	if (    p && *p 		 && ( IsAlpha( (unsigned char) *p, encoding ) || *p == '_' ) )	{		const char* start = p;		while(		p && *p				&&	(		IsAlphaNum( (unsigned char ) *p, encoding ) 						 || *p == '_'						 || *p == '-'						 || *p == '.'						 || *p == ':' ) )		{			//(*name) += *p; // expensive			++p;		}		if ( p-start > 0 ) {			name->assign( start, p-start );		}		return p;	}	return 0;}const char* TiXmlBase::GetEntity( const char* p, char* value, int* length, TiXmlEncoding encoding ){	// Presume an entity, and pull it out.    TIXML_STRING ent;	int i;	*length = 0;	if ( *(p+1) && *(p+1) == '#' && *(p+2) )	{		unsigned long ucs = 0;		ptrdiff_t delta = 0;		unsigned mult = 1;		if ( *(p+2) == 'x' )		{			// Hexadecimal.			if ( !*(p+3) ) return 0;			const char* q = p+3;			q = strchr( q, ';' );			if ( !q || !*q ) return 0;			delta = q-p;			--q;			while ( *q != 'x' )			{				if ( *q >= '0' && *q <= '9' )					ucs += mult * (*q - '0');				else if ( *q >= 'a' && *q <= 'f' )					ucs += mult * (*q - 'a' + 10);				else if ( *q >= 'A' && *q <= 'F' )					ucs += mult * (*q - 'A' + 10 );				else 					return 0;				mult *= 16;				--q;			}		}		else		{			// Decimal.			if ( !*(p+2) ) return 0;			const char* q = p+2;			q = strchr( q, ';' );			if ( !q || !*q ) return 0;			delta = q-p;			--q;			while ( *q != '#' )			{				if ( *q >= '0' && *q <= '9' )					ucs += mult * (*q - '0');				else 					return 0;				mult *= 10;				--q;			}		}		if ( encoding == TIXML_ENCODING_UTF8 )		{			// convert the UCS to UTF-8			ConvertUTF32ToUTF8( ucs, value, length );		}		else		{			*value = (char)ucs;			*length = 1;		}		return p + delta + 1;	}	// Now try to match it.	for( i=0; i<NUM_ENTITY; ++i )	{		if ( strncmp( entity[i].str, p, entity[i].strLength ) == 0 )		{			assert( strlen( entity[i].str ) == entity[i].strLength );			*value = entity[i].chr;			*length = 1;			return ( p + entity[i].strLength );		}	}	// So it wasn't an entity, its unrecognized, or something like that.	*value = *p;	// Don't put back the last one, since we return it!	//*length = 1;	// Leave unrecognized entities - this doesn't really work.					// Just writes strange XML.	return p+1;}bool TiXmlBase::StringEqual( const char* p,							 const char* tag,							 bool ignoreCase,							 TiXmlEncoding encoding ){	assert( p );	assert( tag );	if ( !p || !*p )	{		assert( 0 );		return false;	}	const char* q = p;

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
久久久午夜精品理论片中文字幕| 国产片一区二区| 国产福利不卡视频| 一区二区三区色| 国产日本欧美一区二区| 制服丝袜亚洲精品中文字幕| 99久久亚洲一区二区三区青草| 久久99精品国产麻豆婷婷| 一区二区在线观看视频 | 久久久久久久久伊人| 欧美日本国产视频| 91麻豆国产福利在线观看| 久久国产精品99久久人人澡| 亚洲bt欧美bt精品| 亚洲精品水蜜桃| 国产精品午夜在线| 久久久精品天堂| 精品日韩成人av| 日韩欧美在线影院| 欧美日韩一区二区三区四区| 成人免费毛片a| 国产成人久久精品77777最新版本 国产成人鲁色资源国产91色综 | 国产91精品一区二区麻豆亚洲| 蜜臀av性久久久久蜜臀aⅴ| 一区二区三区在线播| 国产精品国产三级国产普通话99 | 日韩色在线观看| 欧美在线免费观看视频| 91偷拍与自偷拍精品| 国产91综合一区在线观看| 国产一区二区剧情av在线| 美女www一区二区| 看片的网站亚洲| 麻豆91精品视频| 久久99国产精品久久99| 蜜臂av日日欢夜夜爽一区| 日韩国产一二三区| 日本va欧美va欧美va精品| 五月激情综合色| 成人视屏免费看| 国产精品一区二区在线播放| 麻豆一区二区三区| 国产美女久久久久| 国产91精品一区二区麻豆亚洲| 国产乱子伦视频一区二区三区 | 91国模大尺度私拍在线视频| 91麻豆国产香蕉久久精品| 色欧美片视频在线观看 | 欧美午夜精品一区二区蜜桃| 91官网在线免费观看| 在线观看中文字幕不卡| 欧美日本一区二区| 日韩欧美国产三级电影视频| 欧美刺激午夜性久久久久久久| 精品国产免费视频| 亚洲国产成人自拍| 亚洲激情图片小说视频| 亚洲国产美女搞黄色| 日本中文字幕一区二区视频| 国内精品写真在线观看| 成人午夜视频在线| 在线免费亚洲电影| 日韩亚洲欧美中文三级| 精品国产第一区二区三区观看体验 | 欧美在线看片a免费观看| 欧美日本精品一区二区三区| 欧美xxx久久| 国产精品女上位| 亚洲国产人成综合网站| 免费成人在线网站| 99亚偷拍自图区亚洲| 欧美性大战久久久| 久久在线免费观看| 亚洲日本va午夜在线电影| 亚洲gay无套男同| 欧美性生活一区| 精品国精品国产| 亚洲一区中文日韩| 国产在线播放一区二区三区| 成人av午夜电影| 日韩一区二区在线看| 中文字幕色av一区二区三区| 日日骚欧美日韩| 成人av电影免费在线播放| 欧美剧情片在线观看| 国产日韩欧美电影| 亚洲福中文字幕伊人影院| 国产一区二区免费在线| 色噜噜狠狠一区二区三区果冻| 日韩欧美国产麻豆| 一区二区三区资源| 国产精品亚洲人在线观看| 欧洲av一区二区嗯嗯嗯啊| 久久综合99re88久久爱| 亚洲高清视频的网址| 丁香婷婷深情五月亚洲| 91精品国产综合久久福利| 国产精品成人网| 国产一区二区三区观看| 欧美日韩另类国产亚洲欧美一级| 中文字幕乱码一区二区免费| 日韩国产欧美在线播放| 在线免费亚洲电影| 自拍视频在线观看一区二区| 久久不见久久见免费视频1| 在线观看国产91| 国产精品久久福利| 国产精品1区2区3区在线观看| 欧美日韩国产区一| 亚洲精品乱码久久久久| 成人教育av在线| 久久久综合精品| 麻豆精品视频在线观看免费| 精品视频123区在线观看| 亚洲素人一区二区| 成人激情动漫在线观看| 精品国产99国产精品| 五月天国产精品| 欧美日韩国产123区| 亚洲男人的天堂一区二区| 99久久伊人网影院| 国产精品久久久久天堂| 国产麻豆午夜三级精品| 欧美v亚洲v综合ⅴ国产v| 日韩高清一区在线| 777色狠狠一区二区三区| 亚洲综合清纯丝袜自拍| 色哟哟亚洲精品| 伊人夜夜躁av伊人久久| 91麻豆国产在线观看| 亚洲天堂av老司机| 99精品欧美一区| ●精品国产综合乱码久久久久| aaa欧美日韩| 亚洲天堂网中文字| 色综合久久综合网97色综合 | 国产精品每日更新| 波多野结衣亚洲| 亚洲免费观看在线观看| 色偷偷成人一区二区三区91| 亚洲图片激情小说| 欧美伊人久久大香线蕉综合69| 亚洲综合另类小说| 欧美日韩成人综合天天影院| 亚洲午夜三级在线| 欧美一区在线视频| 国产一本一道久久香蕉| 国产精品系列在线| 色激情天天射综合网| 亚洲一区国产视频| 欧美一区二区三区男人的天堂| 久久91精品国产91久久小草| 久久综合久久99| 波多野结衣91| 亚洲成人中文在线| 日韩美女视频在线| 国产高清精品在线| 亚洲精品日产精品乱码不卡| 欧美日韩视频专区在线播放| 久久99在线观看| 国产精品网站一区| 色偷偷久久人人79超碰人人澡| 午夜精品久久久| 26uuu精品一区二区三区四区在线 26uuu精品一区二区在线观看 | 丁香亚洲综合激情啪啪综合| 亚洲视频免费在线观看| 欧美日韩国产片| 国产一区在线观看麻豆| 自拍偷拍欧美精品| 欧美日韩大陆在线| 国产成人综合在线播放| 亚洲欧美另类小说| 精品国产1区二区| 91碰在线视频| 国产一区激情在线| 一区二区三区在线免费播放| 欧美电影免费观看完整版| www.亚洲在线| 免费成人美女在线观看| 国产精品久久一卡二卡| 91麻豆精品国产91久久久使用方法 | 国产欧美日韩综合| 欧美精品九九99久久| 国产成人免费9x9x人网站视频| 亚洲第一搞黄网站| 国产精品精品国产色婷婷| 3751色影院一区二区三区| 粉嫩av一区二区三区粉嫩| 亚洲成年人网站在线观看| 国产精品色哟哟| 日韩视频一区二区在线观看| 97se狠狠狠综合亚洲狠狠| 六月丁香综合在线视频| 一区二区在线观看免费 | 亚洲欧美日韩在线| 久久色在线视频| 欧美肥妇毛茸茸| 欧美专区在线观看一区| 成人av在线电影| 国产精品亚洲成人|