26 #ifndef TINYXML_INCLUDED 27 #define TINYXML_INCLUDED 30 #pragma warning( push ) 31 #pragma warning( disable : 4530 ) 32 #pragma warning( disable : 4786 ) 42 #if defined( _DEBUG ) && !defined( DEBUG ) 50 #define TIXML_STRING std::string 53 #define TIXML_STRING TiXmlString 63 #if defined(_MSC_VER) && (_MSC_VER >= 1400 ) 65 #define TIXML_SNPRINTF _snprintf_s 66 #define TIXML_SSCANF sscanf_s 67 #elif defined(_MSC_VER) && (_MSC_VER >= 1200 ) 70 #define TIXML_SNPRINTF _snprintf 71 #define TIXML_SSCANF sscanf 72 #elif defined(__GNUC__) && (__GNUC__ >= 3 ) 75 #define TIXML_SNPRINTF snprintf 76 #define TIXML_SSCANF sscanf 78 #define TIXML_SNPRINTF snprintf 79 #define TIXML_SSCANF sscanf 90 class TiXmlParsingData;
92 const int TIXML_MAJOR_VERSION = 2;
93 const int TIXML_MINOR_VERSION = 6;
94 const int TIXML_PATCH_VERSION = 1;
102 void Clear() { row = col = -1; }
165 TIXML_ENCODING_UNKNOWN,
167 TIXML_ENCODING_LEGACY
170 const TiXmlEncoding TIXML_DEFAULT_ENCODING = TIXML_ENCODING_UNKNOWN;
213 virtual void Print( FILE* cfile,
int depth )
const = 0;
244 int Row()
const {
return location.row + 1; }
245 int Column()
const {
return location.col + 1; }
253 static const int utf8ByteTable[256];
255 virtual const char*
Parse(
const char* p,
256 TiXmlParsingData* data,
257 TiXmlEncoding encoding ) = 0;
262 static void EncodeString(
const TIXML_STRING& str, TIXML_STRING* out );
268 TIXML_ERROR_OPENING_FILE,
269 TIXML_ERROR_PARSING_ELEMENT,
270 TIXML_ERROR_FAILED_TO_READ_ELEMENT_NAME,
271 TIXML_ERROR_READING_ELEMENT_VALUE,
272 TIXML_ERROR_READING_ATTRIBUTES,
273 TIXML_ERROR_PARSING_EMPTY,
274 TIXML_ERROR_READING_END_TAG,
275 TIXML_ERROR_PARSING_UNKNOWN,
276 TIXML_ERROR_PARSING_COMMENT,
277 TIXML_ERROR_PARSING_DECLARATION,
278 TIXML_ERROR_DOCUMENT_EMPTY,
279 TIXML_ERROR_EMBEDDED_NULL,
280 TIXML_ERROR_PARSING_CDATA,
281 TIXML_ERROR_DOCUMENT_TOP_ONLY,
283 TIXML_ERROR_STRING_COUNT
288 static const char* SkipWhiteSpace(
const char*, TiXmlEncoding encoding );
290 inline static bool IsWhiteSpace(
char c )
292 return ( isspace( (
unsigned char) c ) || c ==
'\n' || c ==
'\r' );
294 inline static bool IsWhiteSpace(
int c )
297 return IsWhiteSpace( (
char) c );
302 static bool StreamWhiteSpace( std::istream * in, TIXML_STRING * tag );
303 static bool StreamTo( std::istream * in,
int character, TIXML_STRING * tag );
310 static const char* ReadName(
const char* p, TIXML_STRING* name, TiXmlEncoding encoding );
315 static const char* ReadText(
const char* in,
317 bool ignoreWhiteSpace,
320 TiXmlEncoding encoding );
323 static const char* GetEntity(
const char* in,
char* value,
int* length, TiXmlEncoding encoding );
327 inline static const char* GetChar(
const char* p,
char* _value,
int* length, TiXmlEncoding encoding )
330 if ( encoding == TIXML_ENCODING_UTF8 )
332 *length = utf8ByteTable[ *((
const unsigned char*)p) ];
333 assert( *length >= 0 && *length < 5 );
343 return GetEntity( p, _value, length, encoding );
351 for(
int i=0; p[i] && i<*length; ++i ) {
354 return p + (*length);
366 static bool StringEqual(
const char* p,
369 TiXmlEncoding encoding );
371 static const char* errorString[ TIXML_ERROR_STRING_COUNT ];
380 static int IsAlpha(
unsigned char anyByte, TiXmlEncoding encoding );
381 static int IsAlphaNum(
unsigned char anyByte, TiXmlEncoding encoding );
382 inline static int ToLower(
int v, TiXmlEncoding encoding )
384 if ( encoding == TIXML_ENCODING_UTF8 )
386 if ( v < 128 )
return tolower( v );
394 static void ConvertUTF32ToUTF8(
unsigned long input,
char* output,
int* length );
403 unsigned int strLength;
409 MAX_ENTITY_LENGTH = 6
412 static Entity entity[ NUM_ENTITY ];
413 static bool condenseWhiteSpace;
434 friend std::istream& operator >> (std::istream& in,
TiXmlNode& base);
452 friend std::ostream& operator<< (std::ostream& out,
const TiXmlNode& base);
455 friend std::string& operator<< (std::string& out,
const TiXmlNode& base );
487 const char *
Value()
const {
return value.c_str (); }
494 const std::string& ValueStr()
const {
return value; }
497 const TIXML_STRING& ValueTStr()
const {
return value; }
508 void SetValue(
const char * _value) { value = _value;}
512 void SetValue(
const std::string& _value ) { value = _value; }
529 return const_cast< TiXmlNode* > ((const_cast< const TiXmlNode* >(
this))->
FirstChild( _value ));
531 const TiXmlNode* LastChild()
const {
return lastChild; }
534 const TiXmlNode* LastChild(
const char * value )
const;
536 return const_cast< TiXmlNode* > ((const_cast< const TiXmlNode* >(
this))->LastChild( _value ));
542 const TiXmlNode* LastChild(
const std::string& _value )
const {
return LastChild (_value.c_str ()); }
543 TiXmlNode* LastChild(
const std::string& _value ) {
return LastChild (_value.c_str ()); }
564 return const_cast< TiXmlNode* >( (const_cast< const TiXmlNode* >(
this))->
IterateChildren( previous ) );
570 return const_cast< TiXmlNode* >( (const_cast< const TiXmlNode* >(
this))->
IterateChildren( _value, previous ) );
620 return const_cast< TiXmlNode* >( (const_cast< const TiXmlNode* >(
this))->
PreviousSibling( _prev ) );
637 return const_cast< TiXmlNode* >( (const_cast< const TiXmlNode* >(
this))->
NextSibling( _next ) );
646 return const_cast< TiXmlElement* >( (const_cast< const TiXmlNode* >(
this))->
NextSiblingElement() );
655 return const_cast< TiXmlElement* >( (const_cast< const TiXmlNode* >(
this))->
NextSiblingElement( _next ) );
666 return const_cast< TiXmlElement* >( (const_cast< const TiXmlNode* >(
this))->
FirstChildElement() );
672 return const_cast< TiXmlElement* >( (const_cast< const TiXmlNode* >(
this))->
FirstChildElement( _value ) );
684 int Type()
const {
return type; }
691 return const_cast< TiXmlDocument* >( (const_cast< const TiXmlNode* >(
this))->
GetDocument() );
749 virtual void StreamIn( std::istream* in, TIXML_STRING* tag ) = 0;
753 TiXmlNode* Identify(
const char* start, TiXmlEncoding encoding );
793 TiXmlAttribute(
const std::string& _name,
const std::string& _value )
811 const char*
Name()
const {
return name.c_str(); }
812 const char*
Value()
const {
return value.c_str(); }
814 const std::string& ValueStr()
const {
return value; }
820 const TIXML_STRING& NameTStr()
const {
return name; }
835 void SetName(
const char* _name ) { name = _name; }
836 void SetValue(
const char* _value ) { value = _value; }
843 void SetName(
const std::string& _name ) { name = _name; }
845 void SetValue(
const std::string& _value ) { value = _value; }
851 return const_cast< TiXmlAttribute* >( (const_cast< const TiXmlAttribute* >(
this))->
Next() );
857 return const_cast< TiXmlAttribute* >( (const_cast< const TiXmlAttribute* >(
this))->
Previous() );
860 bool operator==(
const TiXmlAttribute& rhs )
const {
return rhs.name == name; }
861 bool operator<(
const TiXmlAttribute& rhs )
const {
return name < rhs.name; }
862 bool operator>(
const TiXmlAttribute& rhs )
const {
return name > rhs.name; }
867 virtual const char* Parse(
const char* p, TiXmlParsingData* data, TiXmlEncoding encoding );
870 virtual void Print( FILE* cfile,
int depth )
const {
871 Print( cfile, depth, 0 );
873 void Print( FILE* cfile,
int depth, TIXML_STRING* str )
const;
912 const TiXmlAttribute* First()
const {
return ( sentinel.next == &sentinel ) ? 0 : sentinel.next; }
913 TiXmlAttribute* First() {
return ( sentinel.next == &sentinel ) ? 0 : sentinel.next; }
914 const TiXmlAttribute* Last()
const {
return ( sentinel.prev == &sentinel ) ? 0 : sentinel.prev; }
915 TiXmlAttribute* Last() {
return ( sentinel.prev == &sentinel ) ? 0 : sentinel.prev; }
920 # ifdef TIXML_USE_STL 960 const char*
Attribute(
const char* name )
const;
968 const char*
Attribute(
const char* name,
int* i )
const;
976 const char*
Attribute(
const char* name,
double* d )
const;
992 if ( result == TIXML_SUCCESS ) {
1000 int QueryStringAttribute(
const char* name, std::string* _value )
const {
1003 *_value = std::string( cstr );
1004 return TIXML_SUCCESS;
1006 return TIXML_NO_ATTRIBUTE;
1017 template<
typename T >
int QueryValueAttribute(
const std::string& name, T* outValue )
const 1021 return TIXML_NO_ATTRIBUTE;
1023 std::stringstream sstream( node->ValueStr() );
1024 sstream >> *outValue;
1025 if ( !sstream.fail() )
1026 return TIXML_SUCCESS;
1027 return TIXML_WRONG_TYPE;
1030 int QueryValueAttribute(
const std::string& name, std::string* outValue )
const 1034 return TIXML_NO_ATTRIBUTE;
1035 *outValue = node->ValueStr();
1036 return TIXML_SUCCESS;
1043 void SetAttribute(
const char* name,
const char * _value );
1045 #ifdef TIXML_USE_STL 1046 const std::string*
Attribute(
const std::string& name )
const;
1047 const std::string*
Attribute(
const std::string& name,
int* i )
const;
1048 const std::string*
Attribute(
const std::string& name,
double* d )
const;
1053 void SetAttribute(
const std::string& name,
const std::string& _value );
1055 void SetAttribute(
const std::string& name,
int _value );
1073 #ifdef TIXML_USE_STL 1119 virtual void Print( FILE* cfile,
int depth )
const;
1124 virtual const char* Parse(
const char* p, TiXmlParsingData* data, TiXmlEncoding encoding );
1139 #ifdef TIXML_USE_STL 1140 virtual void StreamIn( std::istream * in, TIXML_STRING * tag );
1146 const char* ReadValue(
const char* in, TiXmlParsingData* prevData, TiXmlEncoding encoding );
1172 virtual void Print( FILE* cfile,
int depth )
const;
1177 virtual const char* Parse(
const char* p, TiXmlParsingData* data, TiXmlEncoding encoding );
1190 #ifdef TIXML_USE_STL 1191 virtual void StreamIn( std::istream * in, TIXML_STRING * tag );
1220 #ifdef TIXML_USE_STL 1230 void operator=(
const TiXmlText& base ) { base.CopyTo(
this ); }
1233 virtual void Print( FILE* cfile,
int depth )
const;
1240 virtual const char* Parse(
const char* p, TiXmlParsingData* data, TiXmlEncoding encoding );
1256 #ifdef TIXML_USE_STL 1257 virtual void StreamIn( std::istream * in, TIXML_STRING * tag );
1284 #ifdef TIXML_USE_STL 1287 const std::string& _encoding,
1288 const std::string& _standalone );
1293 const char* _encoding,
1294 const char* _standalone );
1302 const char *
Version()
const {
return version.c_str (); }
1304 const char *
Encoding()
const {
return encoding.c_str (); }
1311 virtual void Print( FILE* cfile,
int depth, TIXML_STRING* str )
const;
1312 virtual void Print( FILE* cfile,
int depth )
const {
1313 Print( cfile, depth, 0 );
1316 virtual const char* Parse(
const char* p, TiXmlParsingData* data, TiXmlEncoding encoding );
1328 #ifdef TIXML_USE_STL 1329 virtual void StreamIn( std::istream * in, TIXML_STRING * tag );
1334 TIXML_STRING version;
1335 TIXML_STRING encoding;
1336 TIXML_STRING standalone;
1354 void operator=(
const TiXmlUnknown& copy ) { copy.CopyTo(
this ); }
1359 virtual void Print( FILE* cfile,
int depth )
const;
1361 virtual const char* Parse(
const char* p, TiXmlParsingData* data, TiXmlEncoding encoding );
1373 #ifdef TIXML_USE_STL 1374 virtual void StreamIn( std::istream * in, TIXML_STRING * tag );
1394 #ifdef TIXML_USE_STL 1408 bool LoadFile( TiXmlEncoding encoding = TIXML_DEFAULT_ENCODING );
1412 bool LoadFile(
const char * filename, TiXmlEncoding encoding = TIXML_DEFAULT_ENCODING );
1414 bool SaveFile(
const char * filename )
const;
1420 bool LoadFile( FILE*, TiXmlEncoding encoding = TIXML_DEFAULT_ENCODING );
1424 #ifdef TIXML_USE_STL 1425 bool LoadFile(
const std::string& filename, TiXmlEncoding encoding = TIXML_DEFAULT_ENCODING )
1427 return LoadFile( filename.c_str(), encoding );
1429 bool SaveFile(
const std::string& filename )
const 1431 return SaveFile( filename.c_str() );
1439 virtual const char*
Parse(
const char* p, TiXmlParsingData* data = 0, TiXmlEncoding encoding = TIXML_DEFAULT_ENCODING );
1456 const char *
ErrorDesc()
const {
return errorDesc.c_str (); }
1499 int TabSize()
const {
return tabsize; }
1507 errorLocation.row = errorLocation.col = 0;
1521 virtual void Print( FILE* cfile,
int depth = 0 )
const;
1523 void SetError(
int err,
const char* errorLocation, TiXmlParsingData* prevData, TiXmlEncoding encoding );
1535 #ifdef TIXML_USE_STL 1536 virtual void StreamIn( std::istream * in, TIXML_STRING * tag );
1544 TIXML_STRING errorDesc;
1547 bool useMicrosoftBOM;
1668 #ifdef TIXML_USE_STL 1672 TiXmlHandle Child(
const std::string& _value,
int index )
const {
return Child( _value.c_str(), index ); }
1734 buffer(), indent(
" " ), lineBreak(
"\n" ) {}
1750 void SetIndent(
const char* _indent ) { indent = _indent ? _indent :
"" ; }
1752 const char*
Indent() {
return indent.c_str(); }
1757 void SetLineBreak(
const char* _lineBreak ) { lineBreak = _lineBreak ? _lineBreak :
""; }
1768 const char*
CStr() {
return buffer.c_str(); }
1770 size_t Size() {
return buffer.size(); }
1772 #ifdef TIXML_USE_STL 1774 const std::string& Str() {
return buffer; }
1779 for(
int i=0; i<depth; ++i )
1782 void DoLineBreak() {
1783 buffer += lineBreak;
1787 bool simpleTextPrint;
1788 TIXML_STRING buffer;
1789 TIXML_STRING indent;
1790 TIXML_STRING lineBreak;
1795 #pragma warning( pop ) int QueryIntValue(int *_value) const
QueryIntValue examines the value string.
int ErrorCol() const
The column where the error occured. See ErrorRow()
TiXmlNode * FirstChild(const char *_value)
The first child of this node with the matching 'value'. Will be null if none found.
TiXmlNode * LastChild(const char *_value)
The last child of this node matching 'value'. Will be null if there are no children.
An attribute is a name-value pair.
TiXmlHandle(TiXmlNode *_node)
Create a handle from any node (at any depth of the tree.) This can be a null pointer.
void SetUserData(void *user)
Set a pointer to arbitrary user data.
Implements the interface to the "Visitor pattern" (see the Accept() method.) If you call the Accept()...
virtual const TiXmlElement * ToElement() const
Cast to a more defined type. Will return null not of the requested type.
void SetLineBreak(const char *_lineBreak)
Set the line breaking string.
TiXmlHandle(const TiXmlHandle &ref)
Copy constructor.
TiXmlNode * LastChild()
The last child of this node. Will be null if there are no children.
const char * LineBreak()
Query the current line breaking string.
virtual void Print(FILE *cfile, int depth) const
All TinyXml classes can print themselves to a filestream or the string class (TiXmlString in non-STL ...
virtual TiXmlElement * ToElement()
Cast to a more defined type. Will return null if not of the requested type.
virtual bool Visit(const TiXmlUnknown &)
Visit an unknow node.
TiXmlAttribute(const char *_name, const char *_value)
Construct an attribute with a name and value.
virtual const TiXmlDocument * ToDocument() const
Cast to a more defined type. Will return null not of the requested type.
const char * Name() const
Return the name of this attribute.
const char * ErrorDesc() const
Contains a textual (english) description of the error if one occurs.
void Print() const
Write the document to standard out using formatted printing ("pretty print").
int QueryDoubleAttribute(const char *name, double *_value) const
QueryDoubleAttribute examines the attribute - see QueryIntAttribute().
TiXmlElement * Element() const
int QueryDoubleValue(double *_value) const
QueryDoubleValue examines the value string. See QueryIntValue().
void SetDoubleAttribute(const char *name, double value)
Sets an attribute of name to a given value.
virtual const TiXmlElement * ToElement() const
Cast to a more defined type. Will return null if not of the requested type.
TiXmlHandle ChildElement(const char *value, int index) const
Return a handle to the "index" child element with the given name.
const char * GetText() const
Convenience function for easy access to the text inside an element.
virtual bool Accept(TiXmlVisitor *content) const
Walk the XML tree visiting this node and all of its children.
virtual const TiXmlText * ToText() const
Cast to a more defined type. Will return null if not of the requested type.
bool Error() const
If an error occurs, Error will be set to true.
int Column() const
See Row()
virtual TiXmlNode * Clone() const
Creates a copy of this Unknown and returns it.
TiXmlNode * ReplaceChild(TiXmlNode *replaceThis, const TiXmlNode &withThis)
Replace a child of this node.
virtual bool VisitExit(const TiXmlElement &)
Visit an element.
bool CDATA() const
Queries whether this represents text using a CDATA section.
void SetName(const char *_name)
Set the name of this attribute.
void SetTabSize(int _tabsize)
SetTabSize() allows the error reporting functions (ErrorRow() and ErrorCol()) to report the correct v...
TiXmlDocument()
Create an empty document, that has no name.
TiXmlAttribute()
Construct an empty attribute.
virtual bool Accept(TiXmlVisitor *visitor) const
Walk the XML tree visiting this node and all of its children.
const char * Standalone() const
Is this a standalone document?
virtual TiXmlDocument * ToDocument()
Cast to a more defined type. Will return null if not of the requested type.
void ClearError()
If you have handled the error, it can be reset with this call.
virtual void Print(FILE *cfile, int depth) const
All TinyXml classes can print themselves to a filestream or the string class (TiXmlString in non-STL ...
bool LoadFile(TiXmlEncoding encoding=TIXML_DEFAULT_ENCODING)
Load a file using the current document value.
void SetValue(const char *_value)
Changes the value of the node.
TiXmlNode * InsertEndChild(const TiXmlNode &addThis)
Add a new node related to this.
virtual bool VisitExit(const TiXmlDocument &doc)
Visit a document.
TiXmlNode * ToNode() const
Return the handle as a TiXmlNode.
virtual TiXmlElement * ToElement()
Cast to a more defined type. Will return null not of the requested type.
TiXmlNode * InsertBeforeChild(TiXmlNode *beforeThis, const TiXmlNode &addThis)
Add a new node related to this.
NodeType
The types of XML nodes supported by TinyXml.
virtual bool VisitEnter(const TiXmlDocument &)
Visit a document.
static void EncodeString(const TiXmlString &str, TiXmlString *out)
Expands entities in a string.
TiXmlNode * LinkEndChild(TiXmlNode *addThis)
Add a new node related to this.
bool SaveFile() const
Save a file using the current document value. Returns true if successful.
const TiXmlElement * RootElement() const
Get the root element – the only top level element – of the document.
TiXmlHandle Child(const char *value, int index) const
Return a handle to the "index" child with the given name.
const TiXmlElement * FirstChildElement() const
Convenience function to get through elements.
void SetDoubleValue(double _value)
Set the value from a double.
const char * Encoding() const
Encoding. Will return an empty string if none was found.
virtual bool Accept(TiXmlVisitor *visitor) const =0
Accept a hierchical visit the nodes in the TinyXML DOM.
In correct XML the declaration is the first entry in the file.
const TiXmlNode * PreviousSibling() const
Navigate to a sibling node.
virtual const TiXmlDocument * ToDocument() const
Cast to a more defined type. Will return null if not of the requested type.
const char * Value() const
Return the value of this attribute.
Any tag that tinyXml doesn't recognize is saved as an unknown.
int QueryIntAttribute(const char *name, int *_value) const
QueryIntAttribute examines the attribute - it is an alternative to the Attribute() method with richer...
virtual bool Visit(const TiXmlText &)
Visit a text node.
virtual const TiXmlText * ToText() const
Cast to a more defined type. Will return null not of the requested type.
int IntValue() const
Return the value of this attribute, converted to an integer.
virtual const TiXmlComment * ToComment() const
Cast to a more defined type. Will return null if not of the requested type.
const char * Version() const
Version. Will return an empty string if none was found.
virtual TiXmlNode * Clone() const
Creates a copy of this Declaration and returns it.
static bool IsWhiteSpaceCondensed()
Return the current white space setting.
const char * Value() const
The meaning of 'value' changes for the specific type of TiXmlNode.
void SetIndent(const char *_indent)
Set the indent characters for printing.
const TiXmlAttribute * LastAttribute() const
Access the last attribute in this element.
virtual TiXmlDocument * ToDocument()
Cast to a more defined type. Will return null not of the requested type.
void RemoveAttribute(const char *name)
Deletes an attribute with the given name.
void SetAttribute(const char *name, const char *_value)
Sets an attribute of name to a given value.
void SetCDATA(bool _cdata)
Turns on or off a CDATA representation of text.
const char * Indent()
Query the indention string.
virtual void Print(FILE *cfile, int depth) const
All TinyXml classes can print themselves to a filestream or the string class (TiXmlString in non-STL ...
double DoubleValue() const
Return the value of this attribute, converted to a double.
virtual TiXmlDeclaration * ToDeclaration()
Cast to a more defined type. Will return null not of the requested type.
const TiXmlElement * NextSiblingElement() const
Convenience function to get through elements.
Always the top level node.
TiXmlHandle FirstChild() const
Return a handle to the first child node.
TiXmlElement(const char *in_value)
Construct an element.
TiXmlElement * ToElement() const
Return the handle as a TiXmlElement.
TiXmlNode * InsertAfterChild(TiXmlNode *afterThis, const TiXmlNode &addThis)
Add a new node related to this.
int ErrorRow() const
Returns the location (if known) of the error.
TiXmlUnknown * Unknown() const
virtual TiXmlDeclaration * ToDeclaration()
Cast to a more defined type. Will return null if not of the requested type.
int Row() const
Return the position, in the original source file, of this node or attribute.
A TiXmlHandle is a class that wraps a node pointer with null checks; this is an incredibly useful thi...
virtual TiXmlComment * ToComment()
Cast to a more defined type. Will return null if not of the requested type.
const TiXmlAttribute * Next() const
Get the next sibling attribute in the DOM. Returns null at end.
const TiXmlDocument * GetDocument() const
Return a pointer to the Document this node lives in.
TiXmlUnknown * ToUnknown() const
Return the handle as a TiXmlUnknown.
static void SetCondenseWhiteSpace(bool condense)
The world does not agree on whether white space should be kept or not.
TiXmlBase is a base class for every class in TinyXml.
TiXmlNode * Parent()
One step up the DOM.
virtual TiXmlUnknown * ToUnknown()
Cast to a more defined type. Will return null if not of the requested type.
int Type() const
Query the type (as an enumerated value, above) of this node.
virtual const TiXmlUnknown * ToUnknown() const
Cast to a more defined type. Will return null not of the requested type.
const void * GetUserData() const
Get a pointer to arbitrary user data.
const TiXmlNode * FirstChild() const
The first child of this node. Will be null if there are no children.
virtual bool VisitEnter(const TiXmlDocument &doc)
Visit a document.
virtual const char * Parse(const char *p, TiXmlParsingData *data=0, TiXmlEncoding encoding=TIXML_DEFAULT_ENCODING)
Parse the given null terminated block of xml data.
virtual TiXmlNode * Clone() const
Creates a new Element and returns it - the returned element is a copy.
virtual const TiXmlDeclaration * ToDeclaration() const
Cast to a more defined type. Will return null if not of the requested type.
void * GetUserData()
Get a pointer to arbitrary user data.
The parent class for everything in the Document Object Model.
size_t Size()
Return the length of the result string.
void SetIntValue(int _value)
Set the value from an integer.
Print to memory functionality.
bool NoChildren() const
Returns true if this node has no children.
virtual const TiXmlUnknown * ToUnknown() const
Cast to a more defined type. Will return null if not of the requested type.
virtual bool VisitExit(const TiXmlDocument &)
Visit a document.
virtual bool Visit(const TiXmlComment &)
Visit a comment node.
const char * Attribute(const char *name) const
Given an attribute name, Attribute() returns the value for the attribute of that name,...
TiXmlText(const char *initValue)
Constructor for text element.
virtual const TiXmlDeclaration * ToDeclaration() const
Cast to a more defined type. Will return null not of the requested type.
virtual void Print(FILE *cfile, int depth) const
All TinyXml classes can print themselves to a filestream or the string class (TiXmlString in non-STL ...
int QueryFloatAttribute(const char *name, float *_value) const
QueryFloatAttribute examines the attribute - see QueryIntAttribute().
bool RemoveChild(TiXmlNode *removeThis)
Delete a child of this node.
virtual TiXmlUnknown * ToUnknown()
Cast to a more defined type. Will return null not of the requested type.
void Clear()
Delete all the children of this node. Does not affect 'this'.
void SetValue(const char *_value)
Set the value.
const TiXmlAttribute * Previous() const
Get the previous sibling attribute in the DOM. Returns null at beginning.
const TiXmlNode * IterateChildren(const TiXmlNode *previous) const
An alternate way to walk the children of a node.
virtual bool Accept(TiXmlVisitor *content) const
Walk the XML tree visiting this node and all of its children.
virtual bool Accept(TiXmlVisitor *visitor) const
Walk the XML tree visiting this node and all of its children.
virtual TiXmlText * ToText()
Cast to a more defined type. Will return null not of the requested type.
TiXmlHandle FirstChildElement() const
Return a handle to the first child element.
TiXmlDeclaration()
Construct an empty declaration.
void SetStreamPrinting()
Switch over to "stream printing" which is the most dense formatting without linebreaks.
virtual void Print(FILE *cfile, int depth) const =0
All TinyXml classes can print themselves to a filestream or the string class (TiXmlString in non-STL ...
virtual TiXmlNode * Clone() const =0
Create an exact duplicate of this node and return it.
const TiXmlNode * NextSibling() const
Navigate to a sibling node.
TiXmlText * ToText() const
Return the handle as a TiXmlText.
virtual bool Visit(const TiXmlDeclaration &declaration)
Visit a declaration.
const char * CStr()
Return the result.
virtual TiXmlText * ToText()
Cast to a more defined type. Will return null if not of the requested type.
int ErrorId() const
Generally, you probably want the error string ( ErrorDesc() ).
The element is a container class.
virtual bool Accept(TiXmlVisitor *content) const
Walk the XML tree visiting this node and all of its children.
virtual void Print(FILE *cfile, int depth) const
All TinyXml classes can print themselves to a filestream or the string class (TiXmlString in non-STL ...
virtual bool VisitEnter(const TiXmlElement &, const TiXmlAttribute *)
Visit an element.
virtual bool Visit(const TiXmlDeclaration &)
Visit a declaration.
const TiXmlAttribute * FirstAttribute() const
Access the first attribute in this element.