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 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,
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 ) );
655 return const_cast< TiXmlElement*
>( (
const_cast< const TiXmlNode*
>(
this))->NextSiblingElement( _next ) );
672 return const_cast< TiXmlElement*
>( (
const_cast< const TiXmlNode*
>(
this))->FirstChildElement( _value ) );
684 int Type()
const {
return type; }
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; }
816 int IntValue()
const;
817 double DoubleValue()
const;
820 const TIXML_STRING& NameTStr()
const {
return name; }
831 int QueryIntValue(
int* _value )
const;
833 int QueryDoubleValue(
double* _value )
const;
835 void SetName(
const char* _name ) { name = _name; }
836 void SetValue(
const char* _value ) { value = _value; }
838 void SetIntValue(
int _value );
839 void SetDoubleValue(
double _value );
843 void SetName(
const std::string& _name ) { name = _name; }
845 void SetValue(
const std::string& _value ) { value = _value; }
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;
985 int QueryIntAttribute(
const char* name,
int* _value )
const;
987 int QueryDoubleAttribute(
const char* name,
double* _value )
const;
991 int result = QueryDoubleAttribute( name, &d );
992 if ( result == TIXML_SUCCESS ) {
1000 int QueryStringAttribute(
const char* name, std::string* _value )
const {
1001 const char* cstr = Attribute( name );
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;
1049 int QueryIntAttribute(
const std::string& name,
int* _value )
const;
1050 int QueryDoubleAttribute(
const std::string& name,
double* _value )
const;
1053 void SetAttribute(
const std::string& name,
const std::string& _value );
1055 void SetAttribute(
const std::string& name,
int _value );
1057 void SetDoubleAttribute(
const std::string& name,
double value );
1063 void SetAttribute(
const char * name,
int value );
1068 void SetDoubleAttribute(
const char * name,
double value );
1072 void RemoveAttribute(
const char * name );
1073 #ifdef TIXML_USE_STL 1074 void RemoveAttribute(
const std::string& name ) { RemoveAttribute (name.c_str ()); }
1078 TiXmlAttribute* FirstAttribute() {
return attributeSet.First(); }
1114 const char* GetText()
const;
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 );
1410 bool SaveFile()
const;
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 );
1422 bool SaveFile( FILE* )
const;
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 );
1446 TiXmlElement* RootElement() {
return FirstChildElement(); }
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;
1643 TiXmlHandle FirstChild(
const char * value )
const;
1647 TiXmlHandle FirstChildElement(
const char * value )
const;
1652 TiXmlHandle Child(
const char* value,
int index )
const;
1661 TiXmlHandle ChildElement(
const char* value,
int index )
const;
1668 #ifdef TIXML_USE_STL 1669 TiXmlHandle FirstChild(
const std::string& _value )
const {
return FirstChild( _value.c_str() ); }
1670 TiXmlHandle FirstChildElement(
const std::string& _value )
const {
return FirstChildElement( _value.c_str() ); }
1672 TiXmlHandle Child(
const std::string& _value,
int index )
const {
return Child( _value.c_str(), index ); }
1673 TiXmlHandle ChildElement(
const std::string& _value,
int index )
const {
return ChildElement( _value.c_str(), index ); }
1734 buffer(), indent(
" " ), lineBreak(
"\n" ) {}
1743 virtual bool Visit(
const TiXmlText& text );
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 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 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").
TiXmlElement * Element() const
virtual const TiXmlElement * ToElement() const
Cast to a more defined type. Will return null if not of the requested type.
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()
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...
TiXmlAttribute()
Construct an empty attribute.
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 ...
void SetValue(const char *_value)
Changes the value of the node.
TiXmlNode * InsertEndChild(const TiXmlNode &addThis)
Add a new node related to this.
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.
const TiXmlElement * RootElement() const
Get the root element – the only top level element – of the document.
const TiXmlElement * FirstChildElement() const
Convenience function to get through elements.
const char * Encoding() const
Encoding. Will return an empty string if none was found.
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.
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.
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.
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 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 ...
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.
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 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 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.
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.
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 TiXmlNode * IterateChildren(const TiXmlNode *previous) const
An alternate way to walk the children of a node.
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.
TiXmlDeclaration()
Construct an empty declaration.
void SetStreamPrinting()
Switch over to "stream printing" which is the most dense formatting without linebreaks.
const TiXmlNode * NextSibling() const
Navigate to a sibling node.
TiXmlText * ToText() const
Return the handle as a TiXmlText.
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 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.