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

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

?? tinyxml.cpp

?? 一個小巧、好用的xml文檔 解析器
?? CPP
?? 第 1 頁 / 共 3 頁
字號:
/*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.*/#include <ctype.h>#ifdef TIXML_USE_STL#include <sstream>#include <iostream>#endif#include "tinyxml.h"bool TiXmlBase::condenseWhiteSpace = true;void TiXmlBase::PutString( const TIXML_STRING& str, TIXML_STRING* outString ){	int i=0;	while( i<(int)str.length() )	{		unsigned char c = (unsigned char) str[i];		if (    c == '&' 		     && i < ( (int)str.length() - 2 )			 && str[i+1] == '#'			 && str[i+2] == 'x' )		{			// Hexadecimal character reference.			// Pass through unchanged.			// &#xA9;	-- copyright symbol, for example.			//			// The -1 is a bug fix from Rob Laveaux. It keeps			// an overflow from happening if there is no ';'.			// There are actually 2 ways to exit this loop -			// while fails (error case) and break (semicolon found).			// However, there is no mechanism (currently) for			// this function to return an error.			while ( i<(int)str.length()-1 )			{				outString->append( str.c_str() + i, 1 );				++i;				if ( str[i] == ';' )					break;			}		}		else if ( c == '&' )		{			outString->append( entity[0].str, entity[0].strLength );			++i;		}		else if ( c == '<' )		{			outString->append( entity[1].str, entity[1].strLength );			++i;		}		else if ( c == '>' )		{			outString->append( entity[2].str, entity[2].strLength );			++i;		}		else if ( c == '\"' )		{			outString->append( entity[3].str, entity[3].strLength );			++i;		}		else if ( c == '\'' )		{			outString->append( entity[4].str, entity[4].strLength );			++i;		}		else if ( c < 32 )		{			// Easy pass at non-alpha/numeric/symbol			// Below 32 is symbolic.			char buf[ 32 ];						#if defined(TIXML_SNPRINTF)						TIXML_SNPRINTF( buf, sizeof(buf), "&#x%02X;", (unsigned) ( c & 0xff ) );			#else				sprintf( buf, "&#x%02X;", (unsigned) ( c & 0xff ) );			#endif					//*ME:	warning C4267: convert 'size_t' to 'int'			//*ME:	Int-Cast to make compiler happy ...			outString->append( buf, (int)strlen( buf ) );			++i;		}		else		{			//char realc = (char) c;			//outString->append( &realc, 1 );			*outString += (char) c;	// somewhat more efficient function call.			++i;		}	}}TiXmlNode::TiXmlNode( NodeType _type ) : TiXmlBase(){	parent = 0;	type = _type;	firstChild = 0;	lastChild = 0;	prev = 0;	next = 0;}TiXmlNode::~TiXmlNode(){	TiXmlNode* node = firstChild;	TiXmlNode* temp = 0;	while ( node )	{		temp = node;		node = node->next;		delete temp;	}	}void TiXmlNode::CopyTo( TiXmlNode* target ) const{	target->SetValue (value.c_str() );	target->userData = userData; }void TiXmlNode::Clear(){	TiXmlNode* node = firstChild;	TiXmlNode* temp = 0;	while ( node )	{		temp = node;		node = node->next;		delete temp;	}		firstChild = 0;	lastChild = 0;}TiXmlNode* TiXmlNode::LinkEndChild( TiXmlNode* node ){	assert( node->parent == 0 || node->parent == this );	assert( node->GetDocument() == 0 || node->GetDocument() == this->GetDocument() );	if ( node->Type() == TiXmlNode::DOCUMENT )	{		delete node;		if ( GetDocument() ) GetDocument()->SetError( TIXML_ERROR_DOCUMENT_TOP_ONLY, 0, 0, TIXML_ENCODING_UNKNOWN );		return 0;	}	node->parent = this;	node->prev = lastChild;	node->next = 0;	if ( lastChild )		lastChild->next = node;	else		firstChild = node;			// it was an empty list.	lastChild = node;	return node;}TiXmlNode* TiXmlNode::InsertEndChild( const TiXmlNode& addThis ){	if ( addThis.Type() == TiXmlNode::DOCUMENT )	{		if ( GetDocument() ) GetDocument()->SetError( TIXML_ERROR_DOCUMENT_TOP_ONLY, 0, 0, TIXML_ENCODING_UNKNOWN );		return 0;	}	TiXmlNode* node = addThis.Clone();	if ( !node )		return 0;	return LinkEndChild( node );}TiXmlNode* TiXmlNode::InsertBeforeChild( TiXmlNode* beforeThis, const TiXmlNode& addThis ){		if ( !beforeThis || beforeThis->parent != this ) {		return 0;	}	if ( addThis.Type() == TiXmlNode::DOCUMENT )	{		if ( GetDocument() ) GetDocument()->SetError( TIXML_ERROR_DOCUMENT_TOP_ONLY, 0, 0, TIXML_ENCODING_UNKNOWN );		return 0;	}	TiXmlNode* node = addThis.Clone();	if ( !node )		return 0;	node->parent = this;	node->next = beforeThis;	node->prev = beforeThis->prev;	if ( beforeThis->prev )	{		beforeThis->prev->next = node;	}	else	{		assert( firstChild == beforeThis );		firstChild = node;	}	beforeThis->prev = node;	return node;}TiXmlNode* TiXmlNode::InsertAfterChild( TiXmlNode* afterThis, const TiXmlNode& addThis ){	if ( !afterThis || afterThis->parent != this ) {		return 0;	}	if ( addThis.Type() == TiXmlNode::DOCUMENT )	{		if ( GetDocument() ) GetDocument()->SetError( TIXML_ERROR_DOCUMENT_TOP_ONLY, 0, 0, TIXML_ENCODING_UNKNOWN );		return 0;	}	TiXmlNode* node = addThis.Clone();	if ( !node )		return 0;	node->parent = this;	node->prev = afterThis;	node->next = afterThis->next;	if ( afterThis->next )	{		afterThis->next->prev = node;	}	else	{		assert( lastChild == afterThis );		lastChild = node;	}	afterThis->next = node;	return node;}TiXmlNode* TiXmlNode::ReplaceChild( TiXmlNode* replaceThis, const TiXmlNode& withThis ){	if ( replaceThis->parent != this )		return 0;	TiXmlNode* node = withThis.Clone();	if ( !node )		return 0;	node->next = replaceThis->next;	node->prev = replaceThis->prev;	if ( replaceThis->next )		replaceThis->next->prev = node;	else		lastChild = node;	if ( replaceThis->prev )		replaceThis->prev->next = node;	else		firstChild = node;	delete replaceThis;	node->parent = this;	return node;}bool TiXmlNode::RemoveChild( TiXmlNode* removeThis ){	if ( removeThis->parent != this )	{			assert( 0 );		return false;	}	if ( removeThis->next )		removeThis->next->prev = removeThis->prev;	else		lastChild = removeThis->prev;	if ( removeThis->prev )		removeThis->prev->next = removeThis->next;	else		firstChild = removeThis->next;	delete removeThis;	return true;}const TiXmlNode* TiXmlNode::FirstChild( const char * _value ) const{	const TiXmlNode* node;	for ( node = firstChild; node; node = node->next )	{		if ( strcmp( node->Value(), _value ) == 0 )			return node;	}	return 0;}const TiXmlNode* TiXmlNode::LastChild( const char * _value ) const{	const TiXmlNode* node;	for ( node = lastChild; node; node = node->prev )	{		if ( strcmp( node->Value(), _value ) == 0 )			return node;	}	return 0;}const TiXmlNode* TiXmlNode::IterateChildren( const TiXmlNode* previous ) const{	if ( !previous )	{		return FirstChild();	}	else	{		assert( previous->parent == this );		return previous->NextSibling();	}}const TiXmlNode* TiXmlNode::IterateChildren( const char * val, const TiXmlNode* previous ) const{	if ( !previous )	{		return FirstChild( val );	}	else	{		assert( previous->parent == this );		return previous->NextSibling( val );	}}const TiXmlNode* TiXmlNode::NextSibling( const char * _value ) const {	const TiXmlNode* node;	for ( node = next; node; node = node->next )	{		if ( strcmp( node->Value(), _value ) == 0 )			return node;	}	return 0;}const TiXmlNode* TiXmlNode::PreviousSibling( const char * _value ) const{	const TiXmlNode* node;	for ( node = prev; node; node = node->prev )	{		if ( strcmp( node->Value(), _value ) == 0 )			return node;	}	return 0;}void TiXmlElement::RemoveAttribute( const char * name ){    #ifdef TIXML_USE_STL	TIXML_STRING str( name );	TiXmlAttribute* node = attributeSet.Find( str );	#else	TiXmlAttribute* node = attributeSet.Find( name );	#endif	if ( node )	{		attributeSet.Remove( node );		delete node;	}}const TiXmlElement* TiXmlNode::FirstChildElement() const{	const TiXmlNode* node;	for (	node = FirstChild();			node;			node = node->NextSibling() )	{		if ( node->ToElement() )			return node->ToElement();	}	return 0;}const TiXmlElement* TiXmlNode::FirstChildElement( const char * _value ) const{	const TiXmlNode* node;	for (	node = FirstChild( _value );			node;			node = node->NextSibling( _value ) )	{		if ( node->ToElement() )			return node->ToElement();	}	return 0;}const TiXmlElement* TiXmlNode::NextSiblingElement() const{	const TiXmlNode* node;	for (	node = NextSibling();			node;			node = node->NextSibling() )	{		if ( node->ToElement() )			return node->ToElement();	}	return 0;}const TiXmlElement* TiXmlNode::NextSiblingElement( const char * _value ) const{	const TiXmlNode* node;	for (	node = NextSibling( _value );			node;			node = node->NextSibling( _value ) )	{		if ( node->ToElement() )			return node->ToElement();	}	return 0;}const TiXmlDocument* TiXmlNode::GetDocument() const{	const TiXmlNode* node;	for( node = this; node; node = node->parent )	{		if ( node->ToDocument() )			return node->ToDocument();	}	return 0;}TiXmlElement::TiXmlElement (const char * _value)	: TiXmlNode( TiXmlNode::ELEMENT ){	firstChild = lastChild = 0;	value = _value;}#ifdef TIXML_USE_STLTiXmlElement::TiXmlElement( const std::string& _value ) 	: TiXmlNode( TiXmlNode::ELEMENT ){	firstChild = lastChild = 0;	value = _value;}#endifTiXmlElement::TiXmlElement( const TiXmlElement& copy)	: TiXmlNode( TiXmlNode::ELEMENT ){	firstChild = lastChild = 0;	copy.CopyTo( this );	}void TiXmlElement::operator=( const TiXmlElement& base ){	ClearThis();	base.CopyTo( this );}TiXmlElement::~TiXmlElement(){	ClearThis();}void TiXmlElement::ClearThis(){	Clear();	while( attributeSet.First() )	{		TiXmlAttribute* node = attributeSet.First();		attributeSet.Remove( node );		delete node;	}}const char* TiXmlElement::Attribute( const char* name ) const{	const TiXmlAttribute* node = attributeSet.Find( name );	if ( node )		return node->Value();	return 0;}#ifdef TIXML_USE_STLconst std::string* TiXmlElement::Attribute( const std::string& name ) const{	const TiXmlAttribute* node = attributeSet.Find( name );	if ( node )		return &node->ValueStr();	return 0;}#endifconst char* TiXmlElement::Attribute( const char* name, int* i ) const{	const char* s = Attribute( name );	if ( i )	{		if ( s ) {			*i = atoi( s );		}		else {			*i = 0;		}	}	return s;}#ifdef TIXML_USE_STLconst std::string* TiXmlElement::Attribute( const std::string& name, int* i ) const{	const std::string* s = Attribute( name );	if ( i )	{		if ( s ) {			*i = atoi( s->c_str() );		}		else {			*i = 0;		}	}	return s;}#endifconst char* TiXmlElement::Attribute( const char* name, double* d ) const{	const char* s = Attribute( name );	if ( d )	{		if ( s ) {			*d = atof( s );		}		else {			*d = 0;		}	}	return s;}#ifdef TIXML_USE_STLconst std::string* TiXmlElement::Attribute( const std::string& name, double* d ) const{	const std::string* s = Attribute( name );	if ( d )	{		if ( s ) {			*d = atof( s->c_str() );		}		else {			*d = 0;		}	}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
色系网站成人免费| 国产精品网曝门| 久久综合九色综合欧美就去吻| 欧美激情艳妇裸体舞| 亚洲成人激情av| 成人午夜在线播放| 欧美一级二级三级乱码| 亚洲三级视频在线观看| 国产精品自拍毛片| 日韩一区二区三区观看| 亚洲一区中文在线| 不卡av免费在线观看| 日韩精品中文字幕在线一区| 亚洲永久精品国产| 成人app在线观看| www国产精品av| 美女视频免费一区| 日韩亚洲欧美成人一区| 亚洲午夜日本在线观看| 91美女片黄在线观看91美女| 久久先锋影音av鲁色资源| 日韩电影在线免费| 欧美撒尿777hd撒尿| 亚洲另类春色校园小说| 99热国产精品| ...xxx性欧美| 99国产麻豆精品| 中文字幕制服丝袜一区二区三区| 国产经典欧美精品| 久久久久久久久久久99999| 蜜臀av性久久久久蜜臀av麻豆 | 亚洲丝袜制服诱惑| 国产精品中文欧美| 国产欧美一区二区在线| 国产精品一区二区久激情瑜伽| 精品噜噜噜噜久久久久久久久试看| 五月激情综合色| 欧美一区二区三区免费视频| 亚洲午夜羞羞片| 欧美日韩成人综合在线一区二区| 亚洲成人精品一区二区| 69成人精品免费视频| 免费在线看一区| 久久综合99re88久久爱| 国产成a人亚洲精品| 国产精品久久久久久亚洲毛片 | 久久亚洲一区二区三区明星换脸 | 成人永久免费视频| 中文字幕一区二区三区精华液 | 国产一区二区不卡| 国产目拍亚洲精品99久久精品| 成人一区二区三区| 亚洲另类一区二区| 正在播放亚洲一区| 国产成人综合亚洲网站| 18成人在线观看| 欧美精选一区二区| 国产精品亚洲午夜一区二区三区| 中文一区二区在线观看| 91久久精品网| 久久精品国产精品亚洲精品| 久久精品日韩一区二区三区| 91丨porny丨在线| 五月婷婷欧美视频| 国产亚洲一区二区在线观看| 91丨porny丨国产入口| 亚洲地区一二三色| 国产欧美一区二区精品仙草咪 | 亚洲色图在线看| 91麻豆精品91久久久久同性| 99久久国产综合精品女不卡| 美女mm1313爽爽久久久蜜臀| 久久婷婷国产综合精品青草| 91麻豆免费观看| 男男成人高潮片免费网站| 国产精品污网站| 欧美一区二区三区在线视频 | 91精品国产91久久久久久最新毛片| 寂寞少妇一区二区三区| 亚洲免费观看高清完整| 欧美精品一区二区蜜臀亚洲| 色丁香久综合在线久综合在线观看| 美女网站在线免费欧美精品| 亚洲美女少妇撒尿| 中文字幕欧美国产| 日韩色在线观看| 欧洲精品在线观看| 成人精品一区二区三区四区| 美女任你摸久久| 亚洲一区在线观看免费观看电影高清| 久久婷婷久久一区二区三区| 91.成人天堂一区| 在线免费av一区| 成人午夜激情视频| 国产精品一二三在| 免费欧美日韩国产三级电影| 伊人色综合久久天天| 中文字幕高清一区| 久久在线观看免费| 精品区一区二区| 日韩三级精品电影久久久| 欧美三级蜜桃2在线观看| 91影视在线播放| 99精品久久只有精品| 国产原创一区二区三区| 美腿丝袜亚洲三区| 免费美女久久99| 蜜臀av性久久久久蜜臀av麻豆| 天天综合色天天综合| 亚洲国产精品一区二区www在线| 亚洲欧洲精品天堂一级| 国产精品免费视频网站| 国产亚洲欧美激情| 日本一区二区免费在线观看视频 | 国产女人aaa级久久久级 | 67194成人在线观看| 欧美视频自拍偷拍| 欧美在线免费观看亚洲| 色偷偷成人一区二区三区91| 91在线你懂得| 日本韩国视频一区二区| 欧美视频完全免费看| 欧美日韩亚洲综合一区二区三区 | 91精品欧美福利在线观看| 欧美亚洲国产一卡| 欧美麻豆精品久久久久久| 欧美日韩精品欧美日韩精品| 欧美福利视频导航| 337p粉嫩大胆噜噜噜噜噜91av| 久久天天做天天爱综合色| 欧美国产日韩一二三区| 国产精品第四页| 亚洲综合无码一区二区| 日韩 欧美一区二区三区| 国产精品1区二区.| 97久久精品人人做人人爽50路| 日本精品视频一区二区| 国产三级精品在线| 国产精品美女久久久久aⅴ | 日韩一区二区三区视频在线 | 欧美老年两性高潮| 欧美mv和日韩mv国产网站| 26uuu久久综合| 亚洲同性同志一二三专区| 午夜电影网亚洲视频| 久久99精品国产.久久久久久 | 国产一区二区三区在线观看免费视频 | 日本在线不卡一区| 风间由美一区二区av101| 色综合久久久久综合99| 日韩一区二区在线免费观看| 国产欧美一区二区精品仙草咪| 一区二区三区日韩| 国产综合久久久久久鬼色| 色综合久久六月婷婷中文字幕| 日韩视频在线一区二区| 日本一区二区久久| 日韩av中文字幕一区二区三区| 国产精品一区二区三区99| 欧美系列日韩一区| 国产午夜亚洲精品理论片色戒| 一区二区三区四区乱视频| 国内成人自拍视频| 欧美日韩中文另类| 国产精品色哟哟网站| 日本欧美加勒比视频| 91片在线免费观看| 26uuu色噜噜精品一区二区| 亚洲成人精品在线观看| 99re热这里只有精品视频| 精品久久国产字幕高潮| 久久机这里只有精品| 欧美影视一区在线| 中文成人av在线| 久久激情五月婷婷| 51久久夜色精品国产麻豆| 亚洲日本韩国一区| 成人精品一区二区三区中文字幕| 日韩一区二区三区在线| 亚洲成人7777| 在线亚洲免费视频| 国产欧美一区二区三区网站| 九九在线精品视频| 91精品国产综合久久小美女| 一级做a爱片久久| 9久草视频在线视频精品| 久久精品亚洲国产奇米99| 久久精品噜噜噜成人88aⅴ| 欧美精品视频www在线观看| 一卡二卡三卡日韩欧美| 94-欧美-setu| 成人免费在线播放视频| 国产成人免费视频一区| 久久一区二区三区国产精品| 日本欧美久久久久免费播放网| 欧美伦理电影网| 日本亚洲视频在线| 91精品国产色综合久久ai换脸 | 狠狠色丁香婷婷综合久久片| 日韩欧美中文字幕一区|