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

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

?? tinyxmla.cpp

?? 文字編輯器源碼 Text editor source code
?? CPP
?? 第 1 頁 / 共 2 頁
字號:
/*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 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>#include "tinyxmlA.h"#ifdef TIXMLA_USE_STL#include <sstream>#endifbool TiXmlBaseA::condenseWhiteSpace = true;void TiXmlBaseA::PutString( const TIXMLA_STRING& str, TIXMLA_OSTREAM* stream ){	TIXMLA_STRING buffer;	PutString( str, &buffer );	(*stream) << buffer;}void TiXmlBaseA::PutString( const TIXMLA_STRING& str, TIXMLA_STRING* outString ){	int i=0;	while( i<(int)str.length() )	{		int c = 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.			while ( i<(int)str.length() )			{				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 || c > 126 )		{			// Easy pass at non-alpha/numeric/symbol			// 127 is the delete key. Below 32 is symbolic.			char buf[ 32 ];			sprintf( buf, "&#x%02X;", (unsigned) ( c & 0xff ) );			outString->append( buf, strlen( buf ) );			++i;		}		else		{			char realc = (char) c;			outString->append( &realc, 1 );			++i;		}	}}// <-- Strange class for a bug fix. Search for STL_STRING_BUGTiXmlBaseA::StringToBuffer::StringToBuffer( const TIXMLA_STRING& str ){	buffer = new char[ str.length()+1 ];	if ( buffer )	{		strcpy( buffer, str.c_str() );	}}TiXmlBaseA::StringToBuffer::~StringToBuffer(){	delete [] buffer;}// End strange bug fix. -->TiXmlNodeA::TiXmlNodeA( NodeType _type ){	parent = 0;	type = _type;	firstChild = 0;	lastChild = 0;	prev = 0;	next = 0;	userData = 0;}TiXmlNodeA::~TiXmlNodeA(){	TiXmlNodeA* node = firstChild;	TiXmlNodeA* temp = 0;	while ( node )	{		temp = node;		node = node->next;		delete temp;	}	}void TiXmlNodeA::Clear(){	TiXmlNodeA* node = firstChild;	TiXmlNodeA* temp = 0;	while ( node )	{		temp = node;		node = node->next;		delete temp;	}		firstChild = 0;	lastChild = 0;}TiXmlNodeA* TiXmlNodeA::LinkEndChild( TiXmlNodeA* node ){	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;}TiXmlNodeA* TiXmlNodeA::InsertEndChild( const TiXmlNodeA& addThis ){	TiXmlNodeA* node = addThis.Clone();	if ( !node )		return 0;	return LinkEndChild( node );}TiXmlNodeA* TiXmlNodeA::InsertBeforeChild( TiXmlNodeA* beforeThis, const TiXmlNodeA& addThis ){		if ( !beforeThis || beforeThis->parent != this )		return 0;	TiXmlNodeA* 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;}TiXmlNodeA* TiXmlNodeA::InsertAfterChild( TiXmlNodeA* afterThis, const TiXmlNodeA& addThis ){	if ( !afterThis || afterThis->parent != this )		return 0;	TiXmlNodeA* 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;}TiXmlNodeA* TiXmlNodeA::ReplaceChild( TiXmlNodeA* replaceThis, const TiXmlNodeA& withThis ){	if ( replaceThis->parent != this )		return 0;	TiXmlNodeA* 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 TiXmlNodeA::RemoveChild( TiXmlNodeA* 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;}TiXmlNodeA* TiXmlNodeA::FirstChild( const char * _value ) const{	TiXmlNodeA* node;	for ( node = firstChild; node; node = node->next )	{		if ( node->SValue() == TIXMLA_STRING( _value ))			return node;	}	return 0;}TiXmlNodeA* TiXmlNodeA::LastChild( const char * _value ) const{	TiXmlNodeA* node;	for ( node = lastChild; node; node = node->prev )	{		if ( node->SValue() == TIXMLA_STRING (_value))			return node;	}	return 0;}TiXmlNodeA* TiXmlNodeA::IterateChildren( TiXmlNodeA* previous ) const{	if ( !previous )	{		return FirstChild();	}	else	{		assert( previous->parent == this );		return previous->NextSibling();	}}TiXmlNodeA* TiXmlNodeA::IterateChildren( const char * val, TiXmlNodeA* previous ) const{	if ( !previous )	{		return FirstChild( val );	}	else	{		assert( previous->parent == this );		return previous->NextSibling( val );	}}TiXmlNodeA* TiXmlNodeA::NextSibling( const char * _value ) const{	TiXmlNodeA* node;	for ( node = next; node; node = node->next )	{		if ( node->SValue() == TIXMLA_STRING (_value))			return node;	}	return 0;}TiXmlNodeA* TiXmlNodeA::PreviousSibling( const char * _value ) const{	TiXmlNodeA* node;	for ( node = prev; node; node = node->prev )	{		if ( node->SValue() == TIXMLA_STRING (_value))			return node;	}	return 0;}void TiXmlElementA::RemoveAttribute( const char * name ){	TiXmlAttributeA* node = attributeSet.Find( name );	if ( node )	{		attributeSet.Remove( node );		delete node;	}}TiXmlElementA* TiXmlNodeA::FirstChildElement() const{	TiXmlNodeA* node;	for (	node = FirstChild();	node;	node = node->NextSibling() )	{		if ( node->ToElement() )			return node->ToElement();	}	return 0;}TiXmlElementA* TiXmlNodeA::FirstChildElement( const char * _value ) const{	TiXmlNodeA* node;	for (	node = FirstChild( _value );	node;	node = node->NextSibling( _value ) )	{		if ( node->ToElement() )			return node->ToElement();	}	return 0;}TiXmlElementA* TiXmlNodeA::NextSiblingElement() const{	TiXmlNodeA* node;	for (	node = NextSibling();	node;	node = node->NextSibling() )	{		if ( node->ToElement() )			return node->ToElement();	}	return 0;}TiXmlElementA* TiXmlNodeA::NextSiblingElement( const char * _value ) const{	TiXmlNodeA* node;	for (	node = NextSibling( _value );	node;	node = node->NextSibling( _value ) )	{		if ( node->ToElement() )			return node->ToElement();	}	return 0;}TiXmlDocumentA* TiXmlNodeA::GetDocument() const{	const TiXmlNodeA* node;	for( node = this; node; node = node->parent )	{		if ( node->ToDocument() )			return node->ToDocument();	}	return 0;}TiXmlElementA::TiXmlElementA (const char * _value): TiXmlNodeA( TiXmlNodeA::ELEMENT ){	firstChild = lastChild = 0;	value = _value;}TiXmlElementA::~TiXmlElementA(){	while( attributeSet.First() )	{		TiXmlAttributeA* node = attributeSet.First();		attributeSet.Remove( node );		delete node;	}}const char * TiXmlElementA::Attribute( const char * name ) const{	TiXmlAttributeA* node = attributeSet.Find( name );	if ( node )		return node->Value();	return 0;}const char * TiXmlElementA::Attribute( const char * name, int* i ) const{	const char * s = Attribute( name );	if ( i )	{		if ( s )			*i = atoi( s );		else			*i = 0;	}	return s;}const char * TiXmlElementA::Attribute( const char * name, double* d ) const{	const char * s = Attribute( name );	if ( d )	{		if ( s )			*d = atof( s );		else			*d = 0;	}	return s;}int TiXmlElementA::QueryIntAttribute( const char* name, int* ival ) const{	TiXmlAttributeA* node = attributeSet.Find( name );	if ( !node )		return TIXMLA_NO_ATTRIBUTE;	return node->QueryIntValue( ival );}int TiXmlElementA::QueryDoubleAttribute( const char* name, double* dval ) const{	TiXmlAttributeA* node = attributeSet.Find( name );	if ( !node )		return TIXMLA_NO_ATTRIBUTE;	return node->QueryDoubleValue( dval );}void TiXmlElementA::SetAttribute( const char * name, int val ){		char buf[64];	sprintf( buf, "%d", val );	SetAttribute( name, buf );}void TiXmlElementA::SetAttribute( const char * name, const char * _value ){	TiXmlAttributeA* node = attributeSet.Find( name );	if ( node )	{		node->SetValue( _value );		return;	}	TiXmlAttributeA* attrib = new TiXmlAttributeA( name, _value );	if ( attrib )	{		attributeSet.Add( attrib );	}	else	{		TiXmlDocumentA* document = GetDocument();		if ( document ) document->SetError( TIXMLA_ERROR_OUT_OF_MEMORY, 0, 0 );	}}void TiXmlElementA::Print( FILE* cfile, int depth ) const{	int i;	for ( i=0; i<depth; i++ )	{		fprintf( cfile, "    " );	}	fprintf( cfile, "<%s", value.c_str() );	TiXmlAttributeA* attrib;	for ( attrib = attributeSet.First(); attrib; attrib = attrib->Next() )	{		fprintf( cfile, " " );		attrib->Print( cfile, depth );	}	// There are 3 different formatting approaches:	// 1) An element without children is printed as a <foo /> node	// 2) An element with only a text child is printed as <foo> text </foo>	// 3) An element with children is printed on multiple lines.	TiXmlNodeA* node;	if ( !firstChild )	{		fprintf( cfile, " />" );	}	else if ( firstChild == lastChild && firstChild->ToText() )	{		fprintf( cfile, ">" );		firstChild->Print( cfile, depth + 1 );		fprintf( cfile, "</%s>", value.c_str() );	}	else	{		fprintf( cfile, ">" );		for ( node = firstChild; node; node=node->NextSibling() )		{			if ( !node->ToText() )			{				fprintf( cfile, "\n" );			}			node->Print( cfile, depth+1 );		}		fprintf( cfile, "\n" );		for( i=0; i<depth; ++i )		fprintf( cfile, "    " );		fprintf( cfile, "</%s>", value.c_str() );	}}void TiXmlElementA::StreamOut( TIXMLA_OSTREAM * stream ) const{	(*stream) << "<" << value;	TiXmlAttributeA* attrib;	for ( attrib = attributeSet.First(); attrib; attrib = attrib->Next() )	{			(*stream) << " ";		attrib->StreamOut( stream );	}	// If this node has children, give it a closing tag. Else	// make it an empty tag.	TiXmlNodeA* node;	if ( firstChild )	{ 				(*stream) << ">";		for ( node = firstChild; node; node=node->NextSibling() )		{			node->StreamOut( stream );		}		(*stream) << "</" << value << ">";	}	else	{		(*stream) << " />";	}}TiXmlNodeA* TiXmlElementA::Clone() const{	TiXmlElementA* clone = new TiXmlElementA( Value() );	if ( !clone )		return 0;	CopyToClone( clone );	// Clone the attributes, then clone the children.	TiXmlAttributeA* attribute = 0;	for(	attribute = attributeSet.First();	attribute;	attribute = attribute->Next() )	{		clone->SetAttribute( attribute->Name(), attribute->Value() );	}	TiXmlNodeA* node = 0;	for ( node = firstChild; node; node = node->NextSibling() )	{		clone->LinkEndChild( node->Clone() );	}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
综合激情成人伊人| 国产午夜精品久久| 有码一区二区三区| 91香蕉视频mp4| 国产精品久久久久婷婷| 丁香桃色午夜亚洲一区二区三区| 久久久影院官网| 国产一区二区三区四| 精品粉嫩超白一线天av| 精品一区二区三区视频| 欧美tk丨vk视频| 精品伊人久久久久7777人| 日韩一区二区在线观看视频| 日本不卡在线视频| 91精品欧美久久久久久动漫| 青青草成人在线观看| 91精品久久久久久久99蜜桃 | 亚洲三级免费电影| 99这里只有久久精品视频| 成人欧美一区二区三区小说| av激情综合网| 亚洲日本在线视频观看| 91老师片黄在线观看| 亚洲精品福利视频网站| 欧美在线免费观看亚洲| 亚洲h动漫在线| 91精品国产综合久久香蕉麻豆 | 国产精品主播直播| 久久精品人人爽人人爽| 成人ar影院免费观看视频| 亚洲色图清纯唯美| 欧美伊人久久久久久久久影院 | 成人avav在线| 亚洲精品成人少妇| 欧美区视频在线观看| 美女网站色91| 国产日韩精品一区二区三区 | 欧美一区二区视频观看视频| 久久精品国产第一区二区三区| 久久久三级国产网站| 成人app在线| 亚洲电影你懂得| 欧美成人三级在线| 成人三级在线视频| 亚洲国产日日夜夜| 2023国产精品| 99国产一区二区三精品乱码| 午夜欧美2019年伦理| 久久综合九色综合97婷婷女人 | 欧美日韩中文字幕一区| 强制捆绑调教一区二区| 国产午夜亚洲精品不卡| 91视频国产观看| 青青草视频一区| 欧美激情在线一区二区| 欧美性videosxxxxx| 激情图区综合网| 成人欧美一区二区三区在线播放| 欧美日韩亚洲综合在线 欧美亚洲特黄一级| 日本欧美久久久久免费播放网| 久久精品一区八戒影视| 在线观看成人小视频| 国模少妇一区二区三区| 亚洲精品免费在线观看| 精品美女一区二区三区| 91香蕉视频在线| 久久成人综合网| 亚洲男人的天堂网| 精品久久久久久久久久久院品网 | 自拍偷拍国产精品| 日韩免费高清视频| 色婷婷精品大在线视频| 国精品**一区二区三区在线蜜桃| 18欧美亚洲精品| 精品免费视频一区二区| 在线视频一区二区三区| 国产传媒日韩欧美成人| 天天亚洲美女在线视频| 国产精品欧美极品| 日韩午夜三级在线| 色哟哟一区二区| 国产精品99久久久久久宅男| 一区二区三区不卡视频在线观看 | 一区二区在线看| 久久久蜜臀国产一区二区| 欧美日韩免费高清一区色橹橹| 成人涩涩免费视频| 精品制服美女久久| 亚洲成人黄色影院| 亚洲图片你懂的| 久久久久久夜精品精品免费| 欧美日韩国产首页| 91视频一区二区三区| 国产成人亚洲综合a∨婷婷图片| 天天免费综合色| 亚洲精品少妇30p| 国产精品午夜免费| 2024国产精品| 欧美一区二区三区在线电影| 色先锋aa成人| 成人丝袜视频网| 国产美女在线观看一区| 免费成人性网站| 五月天激情综合| 一区二区三区在线视频免费 | 亚洲精品一区二区精华| 欧美精品日日鲁夜夜添| 91国在线观看| 91在线视频免费观看| 国内精品视频一区二区三区八戒| 日韩电影免费在线看| 亚洲国产欧美另类丝袜| 亚洲黄网站在线观看| 国产精品福利影院| 国产日韩欧美a| 久久免费精品国产久精品久久久久| 91麻豆精品国产91久久久久久久久| 欧美自拍偷拍午夜视频| 色综合久久中文字幕| 成人av在线影院| 成人精品视频一区二区三区 | 亚洲1区2区3区4区| 一区二区三区蜜桃| 亚洲乱码日产精品bd| 综合色中文字幕| 国产精品久久久久久久久久久免费看 | 亚洲mv大片欧洲mv大片精品| 亚洲在线视频一区| 亚洲一区二区三区四区中文字幕 | 亚洲综合在线视频| 亚洲日本成人在线观看| 国产精品高清亚洲| 亚洲日本va午夜在线影院| 综合电影一区二区三区 | 国产精品久久久久久亚洲毛片 | 国产高清在线精品| 久久91精品国产91久久小草 | 视频一区二区国产| 青青草国产精品97视觉盛宴| 日本色综合中文字幕| 蜜臀av在线播放一区二区三区| 欧美a一区二区| 美腿丝袜亚洲一区| 国内外成人在线视频| 欧美草草影院在线视频| 日韩欧美黄色影院| 精品国产91亚洲一区二区三区婷婷 | 欧美亚洲图片小说| 欧美日韩精品系列| 欧美一区二区三区免费观看视频| 日韩视频一区在线观看| 久久久蜜臀国产一区二区| 国产精品美女久久久久久久久久久| 国产精品动漫网站| 亚洲自拍偷拍av| 日韩国产精品久久久久久亚洲| 乱中年女人伦av一区二区| 国产一区二区三区高清播放| 国产精品456| 99久久久无码国产精品| 欧美亚洲动漫制服丝袜| 7777精品伊人久久久大香线蕉的| 欧美一区二区不卡视频| 久久亚洲欧美国产精品乐播| 中文一区二区在线观看| 有码一区二区三区| 蜜桃一区二区三区四区| 国产高清久久久| 色综合久久天天| 欧美肥胖老妇做爰| 久久蜜桃香蕉精品一区二区三区| 中文字幕的久久| 亚洲国产精品久久一线不卡| 蜜臀精品久久久久久蜜臀| 夫妻av一区二区| 欧美性色综合网| 欧美va亚洲va在线观看蝴蝶网| 中文av字幕一区| 亚洲国产精品久久人人爱蜜臀| 青娱乐精品在线视频| 国产91精品精华液一区二区三区 | 7777精品伊人久久久大香线蕉超级流畅 | 中文字幕在线不卡一区| 亚洲风情在线资源站| 国产一区二区三区在线观看免费 | 久久久久久久久久久久电影| 亚洲免费观看视频| 美日韩一级片在线观看| 不卡一区二区三区四区| 欧美一区二区视频在线观看2020| 国产人久久人人人人爽| 亚洲国产精品久久艾草纯爱| 国产精品综合二区| 欧美视频一区二区三区| 久久精品视频网| 亚洲3atv精品一区二区三区| 高清在线成人网| 欧美一区午夜精品| 亚洲人成7777| 韩国v欧美v日本v亚洲v|