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

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

?? tinyxml.cpp

?? tinyxml project for Visual Studio 2008. A small xml parser, the result is lib file for embedded ARM
?? 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一区二区三区免费野_久草精品视频
黑人巨大精品欧美一区| 国产精品欧美极品| 国内精品伊人久久久久影院对白| 亚洲午夜电影在线观看| 91精品久久久久久久久99蜜臂| 日韩av中文在线观看| 国产精品国产三级国产aⅴ原创| 日韩一区二区免费视频| 欧美日韩一区三区| 一本久久精品一区二区| 日韩欧美成人激情| 亚洲一区二区黄色| 视频在线在亚洲| 欧美福利一区二区| 懂色av中文一区二区三区| 欧美成人午夜电影| 国产不卡高清在线观看视频| 视频在线观看一区二区三区| 一区二区三区欧美| 日韩欧美一区电影| 国产成人免费xxxxxxxx| 国产中文字幕精品| 56国语精品自产拍在线观看| 一区二区在线观看视频| 一区二区三区自拍| av亚洲精华国产精华| 国产精品18久久久久久vr | 91精品国产91综合久久蜜臀| 亚洲一区二区三区自拍| 91色porny蝌蚪| 日韩av电影天堂| 三级不卡在线观看| 蜜桃视频免费观看一区| 久久久国产综合精品女国产盗摄| 国产乱人伦偷精品视频不卡| 国产一区免费电影| 亚洲自拍偷拍九九九| 日韩欧美国产三级| 日韩国产在线一| 欧美电影免费观看高清完整版| 国产主播一区二区| 欧美高清一级片在线观看| 国产日产欧美一区二区视频| 中文字幕亚洲欧美在线不卡| 午夜私人影院久久久久| 99r国产精品| 日韩不卡在线观看日韩不卡视频| 国产乱一区二区| 亚洲色图自拍偷拍美腿丝袜制服诱惑麻豆| 亚洲在线中文字幕| 九九九久久久精品| 久久99久久99小草精品免视看| 在线观看中文字幕不卡| 成人黄色免费短视频| 韩国成人在线视频| 欧美影片第一页| 欧美揉bbbbb揉bbbbb| 欧美性大战xxxxx久久久| 精品一区二区在线视频| 一区二区三区欧美激情| 国产午夜亚洲精品不卡| 紧缚奴在线一区二区三区| 国产精品久久久久9999吃药| 欧美色大人视频| 国产成人精品三级麻豆| 国产iv一区二区三区| 亚洲五月六月丁香激情| 色呦呦网站一区| 国产亚洲人成网站| 日本一区二区三区电影| 麻豆精品视频在线| 91精品欧美久久久久久动漫 | 99久久国产免费看| 国产女同互慰高潮91漫画| 免费成人av在线| 极品销魂美女一区二区三区| www.激情成人| 久久精品免费观看| 国产网站一区二区三区| 久久青草国产手机看片福利盒子| 欧美日本在线一区| 精品在线一区二区三区| 亚洲成人福利片| 日韩精品一区二区三区视频播放 | av电影在线观看不卡| 91国产免费观看| 5566中文字幕一区二区电影| 亚洲午夜激情网站| 精品日产卡一卡二卡麻豆| 国产在线精品免费| 亚洲欧美激情小说另类| 蜜臀久久99精品久久久画质超高清| 欧美日韩国产一级二级| 亚洲精品国产高清久久伦理二区| 国产精品午夜在线| 亚洲视频香蕉人妖| 中文字幕一区三区| 亚洲精品久久久久久国产精华液| 一区二区不卡在线视频 午夜欧美不卡在| 亚洲激情成人在线| 青青草97国产精品免费观看 | 在线视频一区二区免费| 亚洲成人久久影院| 亚洲欧洲精品成人久久奇米网| 欧美色图第一页| 亚洲三级在线观看| 日韩无一区二区| 91免费看视频| 国产98色在线|日韩| 久久国产人妖系列| 日本不卡一二三| 综合婷婷亚洲小说| 久久久天堂av| 精品一区二区日韩| 青青草原综合久久大伊人精品优势 | 26uuu精品一区二区三区四区在线| 奇米精品一区二区三区四区 | 日本午夜一本久久久综合| 国产成人综合精品三级| 亚洲激情男女视频| 中文字幕一区二区在线播放| 久久综合九色综合97婷婷女人| 欧美一级高清片在线观看| 日韩天堂在线观看| 日本亚洲三级在线| 日韩精品欧美精品| 日韩一区精品视频| 裸体在线国模精品偷拍| 久久不见久久见中文字幕免费| 精品一区二区在线视频| 久久草av在线| 国产成人亚洲综合a∨婷婷| 最新热久久免费视频| 亚洲精品国产视频| 99久久精品免费看国产免费软件| 久久精品无码一区二区三区| 蜜臀av在线播放一区二区三区| 欧美三级日韩三级| 亚洲综合一区二区三区| 色吧成人激情小说| 一区二区三区高清| 在线看国产一区| 亚洲午夜在线观看视频在线| 色屁屁一区二区| 国产一区二区在线看| 国产精品自在在线| 不卡的av中国片| 欧美一卡2卡3卡4卡| 亚洲一二三四区| 国产亚洲精品久| 一级精品视频在线观看宜春院 | 国内外成人在线| 99久久精品国产一区二区三区| 精品视频一区二区不卡| 久久尤物电影视频在线观看| 一区二区三区久久| 一区二区三区欧美日韩| 欧美调教femdomvk| 亚洲成av人片一区二区梦乃| 欧美日韩久久久久久| 国产永久精品大片wwwapp| 国产精品妹子av| 在线区一区二视频| 日韩有码一区二区三区| 欧美成人一区二区三区| 国产乱码精品1区2区3区| 亚洲卡通动漫在线| 国产福利不卡视频| 6080午夜不卡| 亚洲成人av资源| 99久久er热在这里只有精品15| 久久色在线观看| 国产成人av自拍| 黄色精品一二区| 精品日韩一区二区三区免费视频| 一区二区成人在线| 91九色02白丝porn| 国产精品久久久久久久久快鸭| 粉嫩av亚洲一区二区图片| 久久亚区不卡日本| 黑人巨大精品欧美黑白配亚洲| 欧美片网站yy| 欧美激情一区二区在线| 色菇凉天天综合网| 高清av一区二区| 国产乱码精品一区二区三区忘忧草 | 成人一道本在线| 精品国产乱码久久久久久浪潮| 26uuu国产电影一区二区| 日韩在线观看一区二区| 欧美一区二区三区婷婷月色| 日韩激情中文字幕| 精品久久久久久久一区二区蜜臀| 中文一区一区三区高中清不卡| 成人av影视在线观看| 国产精品久久三| 欧美性大战久久久久久久蜜臀| 樱桃国产成人精品视频| 91麻豆精品国产综合久久久久久| 国内外成人在线视频|