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

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

?? tinyxml.h

?? 聯(lián)通的短信網(wǎng)關(guān)平臺。 sp 使用。 如果想自己用vc 開發(fā)短信業(yè)務(wù)
?? H
?? 第 1 頁 / 共 3 頁
字號:
/*
www.sourceforge.net/projects/tinyxml
Original 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 this
software in a product, an acknowledgment in the product documentation
would 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.
*/


#ifndef TINYXML_INCLUDED
#define TINYXML_INCLUDED

#ifdef _MSC_VER
#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

#if defined( DEBUG ) && defined( _MSC_VER )
#include <windows.h>
#define TIXML_LOG OutputDebugString
#else
#define TIXML_LOG printf
#endif

#define TIXML_USE_STL

#ifdef TIXML_USE_STL
	#include <string>
	#define TIXML_STRING	std::string
	#define TIXML_ISTREAM	std::istream
	#define TIXML_OSTREAM	std::ostream
#else
	#include "tinystr.h"
	#define TIXML_STRING	TiXmlString
	#define TIXML_OSTREAM	TiXmlOutStream
#endif

class TiXmlDocument;
class TiXmlElement;
class TiXmlComment;
class TiXmlUnknown;
class TiXmlAttribute;
class TiXmlText;
class TiXmlDeclaration;


/** 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()								{}
	virtual ~TiXmlBase()					{}

	/**	All TinyXml classes can print themselves to a filestream.
		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 these
		values is not thread safe.
	*/
	static void SetCondenseWhiteSpace( bool condense )		{ condenseWhiteSpace = condense; }

	/// Return the current white space setting.
	static bool IsWhiteSpaceCondensed()						{ return condenseWhiteSpace; }

protected:
	// See STL_STRING_BUG
	// Utility class to overcome a bug.
	class StringToBuffer
	{
	  public:
		StringToBuffer( const TIXML_STRING& str );
		~StringToBuffer();
		char* buffer;
	};

	static const char*	SkipWhiteSpace( const char* );
	inline static bool	IsWhiteSpace( int c )		{ return ( isspace( c ) || c == '\n' || c == '\r' ); }

	virtual void StreamOut (TIXML_OSTREAM *) const = 0;

	#ifdef TIXML_USE_STL
	    static bool	StreamWhiteSpace( TIXML_ISTREAM * in, TIXML_STRING * tag );
	    static bool StreamTo( TIXML_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 );

	/*	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
	virtual const char* Parse( const char* p ) = 0;

	// If an entity has been found, transform it into a character.
	static const char* GetEntity( const char* in, char* value );

	// Get a character, while interpreting entities.
	inline static const char* GetChar( const char* p, char* value )
	{
		assert( p );
		if ( *p == '&' )
		{
			return GetEntity( p, value );
		}
		else
		{
			*value = *p;
			return p+1;
		}
	}

	// 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_OSTREAM* out );

	static void PutString( const TIXML_STRING& str, TIXML_STRING* out );

	// Return true if the next characters in the stream are any of the endTag sequences.
	bool static StringEqual(	const char* p,
								const char* endTag,
								bool ignoreCase );


	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_STRING_COUNT
	};
	static const char* errorString[ TIXML_ERROR_STRING_COUNT ];

private:
	struct Entity
	{
		const char*     str;
		unsigned int	strLength;
		char		    chr;
	};
	enum
	{
		NUM_ENTITY = 5,
		MAX_ENTITY_LENGTH = 6

	};
	static Entity entity[ NUM_ENTITY ];
	static bool condenseWhiteSpace;
};


/** The parent class for everything in the Document Object Model.
	(Except for attributes, which are contained in elements.)
	Nodes have siblings, a parent, and children. A node can be
	in a document, or stand on its own. The type of a TiXmlNode
	can be queried, and it can be cast to its more defined type.
*/
class TiXmlNode : public TiXmlBase
{
	friend class TiXmlDocument;
	friend class TiXmlElement;

public:
	#ifdef TIXML_USE_STL	

	    /** An input stream operator, for every class. Tolerant of newlines and
		    formatting, but doesn't expect them.
	    */
	    friend std::istream& operator >> (std::istream& in, TiXmlNode& base);

	    /** An output stream operator, for every class. Note that this outputs
		    without any newlines or formatting, as opposed to Print(), which
		    includes tabs and new lines.

		    The operator<< and operator>> are not completely symmetric. Writing
		    a node to a stream is very well defined. You'll get a nice stream
		    of output, without any extra whitespace or newlines.
		    
		    But reading is not as well defined. (As it always is.) If you create
		    a TiXmlElement (for example) and read that from an input stream,
		    the text needs to define an element or junk will result. This is
		    true of all input streams, but it's worth keeping in mind.

		    A TiXmlDocument will read nodes until it reads a root element.
	    */	
	    friend std::ostream & operator<< (std::ostream& out, const TiXmlNode& base);

	#else
	    // Used internally, not part of the public API.
	    friend TIXML_OSTREAM& operator<< (TIXML_OSTREAM& out, const TiXmlNode& base);
	#endif

	/** The types of XML nodes supported by TinyXml. (All the
			unsupported types are picked up by UNKNOWN.)
	*/
	enum NodeType
	{
		DOCUMENT,
		ELEMENT,
		COMMENT,
		UNKNOWN,
		TEXT,
		DECLARATION,
		TYPECOUNT
	};

	virtual ~TiXmlNode();

	/** The meaning of 'value' changes for the specific type of
		TiXmlNode.
		@verbatim
		Document:	filename of the xml file
		Element:	name of the element
		Comment:	the comment text
		Unknown:	the tag contents
		Text:		the text string
		@endverbatim

		The subclasses will wrap this function.
	*/
	const char * Value () const { return value.c_str (); }

	/** Changes the value of the node. Defined as:
		@verbatim
		Document:	filename of the xml file
		Element:	name of the element
		Comment:	the comment text
		Unknown:	the tag contents
		Text:		the text string
		@endverbatim
	*/
	void SetValue (const char * _value) { value = _value;}

    #ifdef TIXML_USE_STL
	/// STL std::string form.
	void SetValue( const std::string& value )    
	{	  
		StringToBuffer buf( value );
		SetValue( buf.buffer ? buf.buffer : "" );    	
	}	
	#endif

	/// Delete all the children of this node. Does not affect 'this'.
	void Clear();

	/// One step up the DOM.
	TiXmlNode* Parent() const					{ return parent; }

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
天天色天天爱天天射综合| 欧美日韩国产大片| 欧美视频一区二区| 欧美不卡一区二区三区| 国产欧美日韩另类视频免费观看| 国产精品动漫网站| 亚洲sss视频在线视频| 国产一区二区成人久久免费影院| 99精品视频一区二区| 制服.丝袜.亚洲.中文.综合| 久久精品欧美日韩| 亚洲伊人伊色伊影伊综合网 | 欧美色网站导航| 日韩视频一区二区| 国产精品视频线看| 日韩精品电影在线| 99国产精品久久久久久久久久| 在线播放视频一区| 国产精品第四页| 免费av成人在线| 日本精品免费观看高清观看| 日韩精品中文字幕在线不卡尤物| 亚洲男女一区二区三区| 久久精品国产第一区二区三区| 91污片在线观看| 久久综合视频网| 亚洲国产一区二区三区| 成人深夜福利app| 日韩欧美综合在线| 亚洲最大成人综合| 成人手机电影网| 欧美大度的电影原声| 亚洲成人综合网站| 亚洲乱码中文字幕| 91农村精品一区二区在线| 精品中文av资源站在线观看| 久久不见久久见免费视频7| 色综合夜色一区| 国产午夜亚洲精品午夜鲁丝片| 亚洲成人综合网站| 91在线精品一区二区| 国产日产欧美精品一区二区三区| 日韩专区一卡二卡| 在线看国产一区二区| 国产精品高清亚洲| 国产乱淫av一区二区三区| 欧美一区午夜精品| 日韩精品乱码免费| 欧美色精品天天在线观看视频| 国产精品福利影院| 不卡一卡二卡三乱码免费网站| 精品久久久久久久久久久久久久久久久 | 久久精品一区二区三区四区| 免费在线欧美视频| 欧美久久久久久蜜桃| 亚洲综合成人在线视频| 99riav久久精品riav| 国产精品国产三级国产aⅴ中文 | 国产欧美在线观看一区| 狠狠狠色丁香婷婷综合激情| 欧美一二三四在线| 日本美女视频一区二区| 欧美日韩精品欧美日韩精品一综合| 亚洲男人的天堂网| 日本道在线观看一区二区| 中文字幕一区二区三区四区不卡 | 日本一区二区电影| 国产精品996| 国产日韩精品一区二区浪潮av| 久久黄色级2电影| 精品国产亚洲在线| 国产曰批免费观看久久久| 欧美草草影院在线视频| 精品一区二区三区视频 | 国产精品自拍三区| 国产性做久久久久久| 国产成人免费在线视频| 久久精品欧美日韩精品| 成人精品国产免费网站| 国产精品国产三级国产| voyeur盗摄精品| 亚洲精品久久久久久国产精华液| 日本韩国欧美在线| 亚洲电影在线免费观看| 欧美精选一区二区| 久久精品国产免费| 中文字幕欧美激情| 91亚洲精品久久久蜜桃| 亚洲国产另类精品专区| 7777精品伊人久久久大香线蕉| 免费观看日韩av| 久久综合九色综合欧美98| 国产精品911| 亚洲精品亚洲人成人网| 欧美探花视频资源| 另类小说综合欧美亚洲| 久久九九久精品国产免费直播| 丰满岳乱妇一区二区三区| 亚洲激情自拍视频| 69p69国产精品| 国产成人av电影在线播放| 亚洲美腿欧美偷拍| 欧美精品丝袜中出| 国产久卡久卡久卡久卡视频精品| 国产精品美女久久久久aⅴ| 欧美三级三级三级| 韩国v欧美v日本v亚洲v| 综合欧美亚洲日本| 欧美精品亚洲一区二区在线播放| 国产一区二区成人久久免费影院| 亚洲视频 欧洲视频| 91.xcao| 丁香婷婷综合网| 五月综合激情日本mⅴ| 2022国产精品视频| 欧美亚洲动漫另类| 久久66热偷产精品| 亚洲视频精选在线| 日韩欧美电影一二三| 99re这里只有精品视频首页| 日韩—二三区免费观看av| 国产人成亚洲第一网站在线播放| 在线观看日产精品| 激情小说欧美图片| 亚洲国产视频a| 国产日韩欧美制服另类| 欧美日韩大陆在线| 不卡av免费在线观看| 青椒成人免费视频| 亚洲精品少妇30p| 欧美精品一区二区三区视频| 在线视频欧美精品| 国产成人av电影免费在线观看| 亚洲h动漫在线| 中文字幕一区在线观看视频| 日韩视频一区二区在线观看| 日本高清不卡一区| 国产99久久久精品| 免费观看日韩av| 亚洲五月六月丁香激情| 欧美激情一区在线观看| 日韩亚洲欧美在线| 在线一区二区三区做爰视频网站| 国产精品888| 日本亚洲天堂网| 一区二区三区在线免费视频| 日本一区二区视频在线观看| 91精品国产色综合久久不卡蜜臀| www.视频一区| 国产精品自产自拍| 欧美aⅴ一区二区三区视频| 亚洲在线视频一区| 中文字幕日韩一区| 国产午夜精品一区二区三区嫩草| 国产欧美一区视频| 亚洲成av人片在线| 一本到高清视频免费精品| 亚洲一区二区免费视频| 中文字幕一区二区三| 久久婷婷国产综合国色天香| 7777精品伊人久久久大香线蕉的 | 亚洲精品成人精品456| 国产精品久久久久久久久快鸭| 精品国产污污免费网站入口| 日韩视频123| 欧美丰满嫩嫩电影| 欧美日本在线观看| 欧美三级电影在线看| 色素色在线综合| 色噜噜狠狠成人中文综合 | 一区二区在线观看视频| 综合精品久久久| 一区在线中文字幕| 亚洲欧洲国产日韩| 日韩毛片高清在线播放| 国产精品传媒在线| **性色生活片久久毛片| 国产精品白丝在线| 中文字幕一区二区视频| 国产精品传媒在线| 亚洲免费观看高清完整版在线观看熊 | 五月婷婷综合在线| 99在线精品观看| 亚洲一区av在线| 国产三级三级三级精品8ⅰ区| 丝袜美腿亚洲综合| 亚洲成a人v欧美综合天堂| 亚洲国产成人av| 亚洲成人免费视频| 日韩高清不卡一区二区| 麻豆成人久久精品二区三区红| 激情亚洲综合在线| 高清不卡在线观看av| 成人app在线| 色哟哟一区二区在线观看| 精品视频在线免费观看| 91.xcao| 国产视频一区二区三区在线观看 | 成人18精品视频| av电影在线观看一区|