MADARA  3.0.6
TiXmlNode Class Referenceabstract

The parent class for everything in the Document Object Model. More...

#include <tinyxml.h>

Inheritance diagram for TiXmlNode:
Collaboration diagram for TiXmlNode:

Public Types

enum  {
  TIXML_NO_ERROR = 0, TIXML_ERROR, TIXML_ERROR_OPENING_FILE, 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_EMBEDDED_NULL, TIXML_ERROR_PARSING_CDATA, TIXML_ERROR_DOCUMENT_TOP_ONLY,
  TIXML_ERROR_STRING_COUNT
}
 
enum  NodeType {
  TINYXML_DOCUMENT, TINYXML_ELEMENT, TINYXML_COMMENT, TINYXML_UNKNOWN,
  TINYXML_TEXT, TINYXML_DECLARATION, TINYXML_TYPECOUNT
}
 The types of XML nodes supported by TinyXml. More...
 

Public Member Functions

virtual ~TiXmlNode ()
 
virtual bool Accept (TiXmlVisitor *visitor) const =0
 Accept a hierchical visit the nodes in the TinyXML DOM. More...
 
void Clear ()
 Delete all the children of this node. Does not affect 'this'. More...
 
virtual TiXmlNodeClone () const =0
 Create an exact duplicate of this node and return it. More...
 
int Column () const
 See Row() More...
 
const TiXmlNodeFirstChild () const
 The first child of this node. Will be null if there are no children. More...
 
TiXmlNodeFirstChild ()
 
const TiXmlNodeFirstChild (const char *value) const
 The first child of this node with the matching 'value'. More...
 
TiXmlNodeFirstChild (const char *_value)
 The first child of this node with the matching 'value'. Will be null if none found. More...
 
const TiXmlNodeFirstChild (const std::string &_value) const
 STL std::string form. More...
 
TiXmlNodeFirstChild (const std::string &_value)
 STL std::string form. More...
 
const TiXmlElementFirstChildElement () const
 Convenience function to get through elements. More...
 
TiXmlElementFirstChildElement ()
 
const TiXmlElementFirstChildElement (const char *_value) const
 Convenience function to get through elements. More...
 
TiXmlElementFirstChildElement (const char *_value)
 
const TiXmlElementFirstChildElement (const std::string &_value) const
 STL std::string form. More...
 
TiXmlElementFirstChildElement (const std::string &_value)
 STL std::string form. More...
 
const TiXmlDocumentGetDocument () const
 Return a pointer to the Document this node lives in. More...
 
TiXmlDocumentGetDocument ()
 
void * GetUserData ()
 Get a pointer to arbitrary user data. More...
 
const void * GetUserData () const
 Get a pointer to arbitrary user data. More...
 
TiXmlNodeInsertAfterChild (TiXmlNode *afterThis, const TiXmlNode &addThis)
 Add a new node related to this. More...
 
TiXmlNodeInsertBeforeChild (TiXmlNode *beforeThis, const TiXmlNode &addThis)
 Add a new node related to this. More...
 
TiXmlNodeInsertEndChild (const TiXmlNode &addThis)
 Add a new node related to this. More...
 
const TiXmlNodeIterateChildren (const TiXmlNode *previous) const
 An alternate way to walk the children of a node. More...
 
TiXmlNodeIterateChildren (const TiXmlNode *previous)
 
const TiXmlNodeIterateChildren (const char *value, const TiXmlNode *previous) const
 This flavor of IterateChildren searches for children with a particular 'value'. More...
 
TiXmlNodeIterateChildren (const char *_value, const TiXmlNode *previous)
 
const TiXmlNodeIterateChildren (const std::string &_value, const TiXmlNode *previous) const
 STL std::string form. More...
 
TiXmlNodeIterateChildren (const std::string &_value, const TiXmlNode *previous)
 STL std::string form. More...
 
const TiXmlNodeLastChild () const
 
TiXmlNodeLastChild ()
 The last child of this node. Will be null if there are no children. More...
 
const TiXmlNodeLastChild (const char *value) const
 
TiXmlNodeLastChild (const char *_value)
 The last child of this node matching 'value'. Will be null if there are no children. More...
 
const TiXmlNodeLastChild (const std::string &_value) const
 STL std::string form. More...
 
TiXmlNodeLastChild (const std::string &_value)
 STL std::string form. More...
 
TiXmlNodeLinkEndChild (TiXmlNode *addThis)
 Add a new node related to this. More...
 
const TiXmlNodeNextSibling (const std::string &_value) const
 STL std::string form. More...
 
TiXmlNodeNextSibling (const std::string &_value)
 STL std::string form. More...
 
const TiXmlNodeNextSibling () const
 Navigate to a sibling node. More...
 
TiXmlNodeNextSibling ()
 
const TiXmlNodeNextSibling (const char *) const
 Navigate to a sibling node with the given 'value'. More...
 
TiXmlNodeNextSibling (const char *_next)
 
const TiXmlElementNextSiblingElement () const
 Convenience function to get through elements. More...
 
TiXmlElementNextSiblingElement ()
 
const TiXmlElementNextSiblingElement (const char *) const
 Convenience function to get through elements. More...
 
TiXmlElementNextSiblingElement (const char *_next)
 
const TiXmlElementNextSiblingElement (const std::string &_value) const
 STL std::string form. More...
 
TiXmlElementNextSiblingElement (const std::string &_value)
 STL std::string form. More...
 
bool NoChildren () const
 Returns true if this node has no children. More...
 
TiXmlNodeParent ()
 One step up the DOM. More...
 
const TiXmlNodeParent () const
 
virtual const char * Parse (const char *p, TiXmlParsingData *data, TiXmlEncoding encoding)=0
 
const TiXmlNodePreviousSibling () const
 Navigate to a sibling node. More...
 
TiXmlNodePreviousSibling ()
 
const TiXmlNodePreviousSibling (const char *) const
 Navigate to a sibling node. More...
 
TiXmlNodePreviousSibling (const char *_prev)
 
const TiXmlNodePreviousSibling (const std::string &_value) const
 STL std::string form. More...
 
TiXmlNodePreviousSibling (const std::string &_value)
 STL std::string form. More...
 
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 mode, std::string in STL mode.) Either or both cfile and str can be null. More...
 
bool RemoveChild (TiXmlNode *removeThis)
 Delete a child of this node. More...
 
TiXmlNodeReplaceChild (TiXmlNode *replaceThis, const TiXmlNode &withThis)
 Replace a child of this node. More...
 
int Row () const
 Return the position, in the original source file, of this node or attribute. More...
 
void SetUserData (void *user)
 Set a pointer to arbitrary user data. More...
 
void SetValue (const char *_value)
 Changes the value of the node. More...
 
void SetValue (const std::string &_value)
 STL std::string form. More...
 
virtual const TiXmlCommentToComment () const
 Cast to a more defined type. Will return null if not of the requested type. More...
 
virtual TiXmlCommentToComment ()
 Cast to a more defined type. Will return null if not of the requested type. More...
 
virtual const TiXmlDeclarationToDeclaration () const
 Cast to a more defined type. Will return null if not of the requested type. More...
 
virtual TiXmlDeclarationToDeclaration ()
 Cast to a more defined type. Will return null if not of the requested type. More...
 
virtual const TiXmlDocumentToDocument () const
 Cast to a more defined type. Will return null if not of the requested type. More...
 
virtual TiXmlDocumentToDocument ()
 Cast to a more defined type. Will return null if not of the requested type. More...
 
virtual const TiXmlElementToElement () const
 Cast to a more defined type. Will return null if not of the requested type. More...
 
virtual TiXmlElementToElement ()
 Cast to a more defined type. Will return null if not of the requested type. More...
 
virtual const TiXmlTextToText () const
 Cast to a more defined type. Will return null if not of the requested type. More...
 
virtual TiXmlTextToText ()
 Cast to a more defined type. Will return null if not of the requested type. More...
 
virtual const TiXmlUnknownToUnknown () const
 Cast to a more defined type. Will return null if not of the requested type. More...
 
virtual TiXmlUnknownToUnknown ()
 Cast to a more defined type. Will return null if not of the requested type. More...
 
int Type () const
 Query the type (as an enumerated value, above) of this node. More...
 
const char * Value () const
 The meaning of 'value' changes for the specific type of TiXmlNode. More...
 
const std::string & ValueStr () const
 Return Value() as a std::string. More...
 
const std::string & ValueTStr () const
 

Static Public Member Functions

static void EncodeString (const std::string &str, std::string *out)
 Expands entities in a string. More...
 
static bool IsWhiteSpaceCondensed ()
 Return the current white space setting. More...
 
static void SetCondenseWhiteSpace (bool condense)
 The world does not agree on whether white space should be kept or not. More...
 

Static Public Attributes

static const int utf8ByteTable [256]
 

Protected Member Functions

 TiXmlNode (NodeType _type)
 
void CopyTo (TiXmlNode *target) const
 
TiXmlNodeIdentify (const char *start, TiXmlEncoding encoding)
 
virtual void StreamIn (std::istream *in, std::string *tag)=0
 

Static Protected Member Functions

static void ConvertUTF32ToUTF8 (unsigned long input, char *output, int *length)
 
static const char * GetChar (const char *p, char *_value, int *length, TiXmlEncoding encoding)
 
static const char * GetEntity (const char *in, char *value, int *length, TiXmlEncoding encoding)
 
static int IsAlpha (unsigned char anyByte, TiXmlEncoding encoding)
 
static int IsAlphaNum (unsigned char anyByte, TiXmlEncoding encoding)
 
static bool IsWhiteSpace (char c)
 
static bool IsWhiteSpace (int c)
 
static const char * ReadName (const char *p, std::string *name, TiXmlEncoding encoding)
 
static const char * ReadText (const char *in, std::string *text, bool ignoreWhiteSpace, const char *endTag, bool ignoreCase, TiXmlEncoding encoding)
 
static const char * SkipWhiteSpace (const char *, TiXmlEncoding encoding)
 
static bool StreamTo (std::istream *in, int character, std::string *tag)
 
static bool StreamWhiteSpace (std::istream *in, std::string *tag)
 
static bool StringEqual (const char *p, const char *endTag, bool ignoreCase, TiXmlEncoding encoding)
 
static int ToLower (int v, TiXmlEncoding encoding)
 

Protected Attributes

TiXmlNodefirstChild
 
TiXmlNodelastChild
 
TiXmlCursor location
 
TiXmlNodenext
 
TiXmlNodeparent
 
TiXmlNodeprev
 
NodeType type
 
void * userData
 Field containing a generic user pointer. More...
 
std::string value
 

Static Protected Attributes

static const char * errorString [TIXML_ERROR_STRING_COUNT]
 

Private Member Functions

 TiXmlNode (const TiXmlNode &)
 
void operator= (const TiXmlNode &base)
 

Friends

std::ostream & operator<< (std::ostream &out, const TiXmlNode &base)
 An output stream operator, for every class. More...
 
std::string & operator<< (std::string &out, const TiXmlNode &base)
 Appends the XML node or attribute to a std::string. More...
 
std::istream & operator>> (std::istream &in, TiXmlNode &base)
 An input stream operator, for every class. More...
 
class TiXmlDocument
 
class TiXmlElement
 

Detailed Description

The parent class for everything in the Document Object Model.

(Except for attributes). 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.

Definition at line 446 of file tinyxml.h.

Member Enumeration Documentation

anonymous enum
inherited
Enumerator
TIXML_NO_ERROR 
TIXML_ERROR 
TIXML_ERROR_OPENING_FILE 
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_EMBEDDED_NULL 
TIXML_ERROR_PARSING_CDATA 
TIXML_ERROR_DOCUMENT_TOP_ONLY 
TIXML_ERROR_STRING_COUNT 

Definition at line 284 of file tinyxml.h.

The types of XML nodes supported by TinyXml.

(All the unsupported types are picked up by UNKNOWN.)

Enumerator
TINYXML_DOCUMENT 
TINYXML_ELEMENT 
TINYXML_COMMENT 
TINYXML_UNKNOWN 
TINYXML_TEXT 
TINYXML_DECLARATION 
TINYXML_TYPECOUNT 

Definition at line 485 of file tinyxml.h.

Constructor & Destructor Documentation

TiXmlNode::~TiXmlNode ( )
virtual

Definition at line 149 of file tinyxml.cpp.

TiXmlNode::TiXmlNode ( NodeType  _type)
protected

Definition at line 138 of file tinyxml.cpp.

TiXmlNode::TiXmlNode ( const TiXmlNode )
private

Member Function Documentation

virtual bool TiXmlNode::Accept ( TiXmlVisitor visitor) const
pure virtual

Accept a hierchical visit the nodes in the TinyXML DOM.

Every node in the XML tree will be conditionally visited and the host will be called back via the TiXmlVisitor interface.

This is essentially a SAX interface for TinyXML. (Note however it doesn't re-parse the XML for the callbacks, so the performance of TinyXML is unchanged by using this interface versus any other.)

The interface has been based on ideas from:

Which are both good references for "visiting".

An example of using Accept():

TiXmlPrinter printer;
tinyxmlDoc.Accept( &printer );
const char* xmlcstr = printer.CStr();

Implemented in TiXmlDocument, TiXmlUnknown, TiXmlDeclaration, TiXmlText, TiXmlComment, and TiXmlElement.

void TiXmlNode::Clear ( )

Delete all the children of this node. Does not affect 'this'.

Definition at line 171 of file tinyxml.cpp.

virtual TiXmlNode* TiXmlNode::Clone ( ) const
pure virtual

Create an exact duplicate of this node and return it.

The memory must be deleted by the caller.

Implemented in TiXmlDocument, TiXmlUnknown, TiXmlDeclaration, TiXmlText, TiXmlComment, and TiXmlElement.

int TiXmlBase::Column ( ) const
inlineinherited

See Row()

Definition at line 265 of file tinyxml.h.

void TiXmlBase::ConvertUTF32ToUTF8 ( unsigned long  input,
char *  output,
int *  length 
)
staticprotectedinherited

Definition at line 90 of file tinyxmlparser.cpp.

void TiXmlNode::CopyTo ( TiXmlNode target) const
protected

Definition at line 163 of file tinyxml.cpp.

void TiXmlBase::EncodeString ( const std::string &  str,
std::string *  out 
)
staticinherited

Expands entities in a string.

Note this should not contian the tag's '<', '>', etc, or they will be transformed into entities!

Definition at line 54 of file tinyxml.cpp.

const TiXmlNode* TiXmlNode::FirstChild ( ) const
inline

The first child of this node. Will be null if there are no children.

Definition at line 545 of file tinyxml.h.

TiXmlNode* TiXmlNode::FirstChild ( )
inline

Definition at line 546 of file tinyxml.h.

const TiXmlNode * TiXmlNode::FirstChild ( const char *  value) const

The first child of this node with the matching 'value'.

Will be null if none found.

Definition at line 359 of file tinyxml.cpp.

TiXmlNode* TiXmlNode::FirstChild ( const char *  _value)
inline

The first child of this node with the matching 'value'. Will be null if none found.

Definition at line 549 of file tinyxml.h.

const TiXmlNode* TiXmlNode::FirstChild ( const std::string &  _value) const
inline

STL std::string form.

Definition at line 563 of file tinyxml.h.

TiXmlNode* TiXmlNode::FirstChild ( const std::string &  _value)
inline

STL std::string form.

Definition at line 564 of file tinyxml.h.

const TiXmlElement * TiXmlNode::FirstChildElement ( ) const

Convenience function to get through elements.

Definition at line 450 of file tinyxml.cpp.

TiXmlElement* TiXmlNode::FirstChildElement ( )
inline

Definition at line 688 of file tinyxml.h.

const TiXmlElement * TiXmlNode::FirstChildElement ( const char *  _value) const

Convenience function to get through elements.

Definition at line 465 of file tinyxml.cpp.

TiXmlElement* TiXmlNode::FirstChildElement ( const char *  _value)
inline

Definition at line 694 of file tinyxml.h.

const TiXmlElement* TiXmlNode::FirstChildElement ( const std::string &  _value) const
inline

STL std::string form.

Definition at line 699 of file tinyxml.h.

TiXmlElement* TiXmlNode::FirstChildElement ( const std::string &  _value)
inline

STL std::string form.

Definition at line 700 of file tinyxml.h.

static const char* TiXmlBase::GetChar ( const char *  p,
char *  _value,
int *  length,
TiXmlEncoding  encoding 
)
inlinestaticprotectedinherited

Definition at line 347 of file tinyxml.h.

const TiXmlDocument * TiXmlNode::GetDocument ( ) const

Return a pointer to the Document this node lives in.

Returns null if not in a document.

Definition at line 510 of file tinyxml.cpp.

TiXmlDocument* TiXmlNode::GetDocument ( )
inline

Definition at line 713 of file tinyxml.h.

const char * TiXmlBase::GetEntity ( const char *  in,
char *  value,
int *  length,
TiXmlEncoding  encoding 
)
staticprotectedinherited

Definition at line 442 of file tinyxmlparser.cpp.

void* TiXmlBase::GetUserData ( )
inlineinherited

Get a pointer to arbitrary user data.

Definition at line 268 of file tinyxml.h.

const void* TiXmlBase::GetUserData ( ) const
inlineinherited

Get a pointer to arbitrary user data.

Definition at line 269 of file tinyxml.h.

TiXmlNode * TiXmlNode::Identify ( const char *  start,
TiXmlEncoding  encoding 
)
protected

Definition at line 822 of file tinyxmlparser.cpp.

TiXmlNode * TiXmlNode::InsertAfterChild ( TiXmlNode afterThis,
const TiXmlNode addThis 
)

Add a new node related to this.

Adds a child after the specified child. Returns a pointer to the new object or NULL if an error occured.

Definition at line 262 of file tinyxml.cpp.

TiXmlNode * TiXmlNode::InsertBeforeChild ( TiXmlNode beforeThis,
const TiXmlNode addThis 
)

Add a new node related to this.

Adds a child before the specified child. Returns a pointer to the new object or NULL if an error occured.

Definition at line 230 of file tinyxml.cpp.

TiXmlNode * TiXmlNode::InsertEndChild ( const TiXmlNode addThis)

Add a new node related to this.

Adds a child past the LastChild. Returns a pointer to the new object or NULL if an error occured.

Definition at line 215 of file tinyxml.cpp.

int TiXmlBase::IsAlpha ( unsigned char  anyByte,
TiXmlEncoding  encoding 
)
staticprotectedinherited

Definition at line 131 of file tinyxmlparser.cpp.

int TiXmlBase::IsAlphaNum ( unsigned char  anyByte,
TiXmlEncoding  encoding 
)
staticprotectedinherited

Definition at line 152 of file tinyxmlparser.cpp.

static bool TiXmlBase::IsWhiteSpace ( char  c)
inlinestaticprotectedinherited

Definition at line 310 of file tinyxml.h.

static bool TiXmlBase::IsWhiteSpace ( int  c)
inlinestaticprotectedinherited

Definition at line 314 of file tinyxml.h.

static bool TiXmlBase::IsWhiteSpaceCondensed ( )
inlinestaticinherited

Return the current white space setting.

Definition at line 244 of file tinyxml.h.

const TiXmlNode * TiXmlNode::IterateChildren ( const TiXmlNode previous) const

An alternate way to walk the children of a node.

One way to iterate over nodes is:

  for( child = parent->FirstChild(); child; child = child->NextSibling() )

IterateChildren does the same thing with the syntax:

  child = 0;
  while( child = parent->IterateChildren( child ) )

IterateChildren takes the previous child as input and finds the next one. If the previous child is null, it returns the first. IterateChildren will return null when done.

Definition at line 383 of file tinyxml.cpp.

TiXmlNode* TiXmlNode::IterateChildren ( const TiXmlNode previous)
inline

Definition at line 586 of file tinyxml.h.

const TiXmlNode * TiXmlNode::IterateChildren ( const char *  value,
const TiXmlNode previous 
) const

This flavor of IterateChildren searches for children with a particular 'value'.

Definition at line 397 of file tinyxml.cpp.

TiXmlNode* TiXmlNode::IterateChildren ( const char *  _value,
const TiXmlNode previous 
)
inline

Definition at line 592 of file tinyxml.h.

const TiXmlNode* TiXmlNode::IterateChildren ( const std::string &  _value,
const TiXmlNode previous 
) const
inline

STL std::string form.

Definition at line 597 of file tinyxml.h.

TiXmlNode* TiXmlNode::IterateChildren ( const std::string &  _value,
const TiXmlNode previous 
)
inline

STL std::string form.

Definition at line 598 of file tinyxml.h.

const TiXmlNode* TiXmlNode::LastChild ( ) const
inline

Definition at line 554 of file tinyxml.h.

TiXmlNode* TiXmlNode::LastChild ( )
inline

The last child of this node. Will be null if there are no children.

Definition at line 555 of file tinyxml.h.

const TiXmlNode * TiXmlNode::LastChild ( const char *  value) const

Definition at line 371 of file tinyxml.cpp.

TiXmlNode* TiXmlNode::LastChild ( const char *  _value)
inline

The last child of this node matching 'value'. Will be null if there are no children.

Definition at line 558 of file tinyxml.h.

const TiXmlNode* TiXmlNode::LastChild ( const std::string &  _value) const
inline

STL std::string form.

Definition at line 565 of file tinyxml.h.

TiXmlNode* TiXmlNode::LastChild ( const std::string &  _value)
inline

STL std::string form.

Definition at line 566 of file tinyxml.h.

TiXmlNode * TiXmlNode::LinkEndChild ( TiXmlNode addThis)

Add a new node related to this.

Adds a child past the LastChild.

NOTE: the node to be added is passed by pointer, and will be henceforth owned (and deleted) by tinyXml. This method is efficient and avoids an extra copy, but should be used with care as it uses a different memory model than the other insert functions.

See also
InsertEndChild

Definition at line 188 of file tinyxml.cpp.

const TiXmlNode* TiXmlNode::NextSibling ( const std::string &  _value) const
inline

STL std::string form.

Definition at line 649 of file tinyxml.h.

TiXmlNode* TiXmlNode::NextSibling ( const std::string &  _value)
inline

STL std::string form.

Definition at line 650 of file tinyxml.h.

const TiXmlNode* TiXmlNode::NextSibling ( ) const
inline

Navigate to a sibling node.

Definition at line 654 of file tinyxml.h.

TiXmlNode* TiXmlNode::NextSibling ( )
inline

Definition at line 655 of file tinyxml.h.

const TiXmlNode * TiXmlNode::NextSibling ( const char *  _value) const

Navigate to a sibling node with the given 'value'.

Definition at line 411 of file tinyxml.cpp.

TiXmlNode* TiXmlNode::NextSibling ( const char *  _next)
inline

Definition at line 659 of file tinyxml.h.

const TiXmlElement * TiXmlNode::NextSiblingElement ( ) const

Convenience function to get through elements.

Calls NextSibling and ToElement. Will skip all non-Element nodes. Returns 0 if there is not another element.

Definition at line 480 of file tinyxml.cpp.

TiXmlElement* TiXmlNode::NextSiblingElement ( )
inline

Definition at line 668 of file tinyxml.h.

const TiXmlElement * TiXmlNode::NextSiblingElement ( const char *  _value) const

Convenience function to get through elements.

Calls NextSibling and ToElement. Will skip all non-Element nodes. Returns 0 if there is not another element.

Definition at line 495 of file tinyxml.cpp.

TiXmlElement* TiXmlNode::NextSiblingElement ( const char *  _next)
inline

Definition at line 677 of file tinyxml.h.

const TiXmlElement* TiXmlNode::NextSiblingElement ( const std::string &  _value) const
inline

STL std::string form.

Definition at line 682 of file tinyxml.h.

TiXmlElement* TiXmlNode::NextSiblingElement ( const std::string &  _value)
inline

STL std::string form.

Definition at line 683 of file tinyxml.h.

bool TiXmlNode::NoChildren ( ) const
inline

Returns true if this node has no children.

Definition at line 718 of file tinyxml.h.

void TiXmlNode::operator= ( const TiXmlNode base)
private
TiXmlNode* TiXmlNode::Parent ( )
inline

One step up the DOM.

Definition at line 542 of file tinyxml.h.

const TiXmlNode* TiXmlNode::Parent ( ) const
inline

Definition at line 543 of file tinyxml.h.

virtual const char* TiXmlBase::Parse ( const char *  p,
TiXmlParsingData data,
TiXmlEncoding  encoding 
)
pure virtualinherited
const TiXmlNode* TiXmlNode::PreviousSibling ( ) const
inline

Navigate to a sibling node.

Definition at line 637 of file tinyxml.h.

TiXmlNode* TiXmlNode::PreviousSibling ( )
inline

Definition at line 638 of file tinyxml.h.

const TiXmlNode * TiXmlNode::PreviousSibling ( const char *  _value) const

Navigate to a sibling node.

Definition at line 423 of file tinyxml.cpp.

TiXmlNode* TiXmlNode::PreviousSibling ( const char *  _prev)
inline

Definition at line 642 of file tinyxml.h.

const TiXmlNode* TiXmlNode::PreviousSibling ( const std::string &  _value) const
inline

STL std::string form.

Definition at line 647 of file tinyxml.h.

TiXmlNode* TiXmlNode::PreviousSibling ( const std::string &  _value)
inline

STL std::string form.

Definition at line 648 of file tinyxml.h.

virtual void TiXmlBase::Print ( FILE *  cfile,
int  depth 
) const
pure virtualinherited

All TinyXml classes can print themselves to a filestream or the string class (TiXmlString in non-STL mode, std::string in STL mode.) Either or both cfile and str can be null.

This is a formatted print, and will insert tabs and newlines.

(For an unformatted stream, use the << operator.)

Implemented in TiXmlDocument, TiXmlUnknown, TiXmlDeclaration, TiXmlText, TiXmlComment, TiXmlElement, and TiXmlAttribute.

const char * TiXmlBase::ReadName ( const char *  p,
std::string *  name,
TiXmlEncoding  encoding 
)
staticprotectedinherited

Definition at line 405 of file tinyxmlparser.cpp.

const char * TiXmlBase::ReadText ( const char *  in,
std::string *  text,
bool  ignoreWhiteSpace,
const char *  endTag,
bool  ignoreCase,
TiXmlEncoding  encoding 
)
staticprotectedinherited

Definition at line 578 of file tinyxmlparser.cpp.

bool TiXmlNode::RemoveChild ( TiXmlNode removeThis)

Delete a child of this node.

Definition at line 333 of file tinyxml.cpp.

TiXmlNode * TiXmlNode::ReplaceChild ( TiXmlNode replaceThis,
const TiXmlNode withThis 
)

Replace a child of this node.

Returns a pointer to the new object or NULL if an error occured.

Definition at line 294 of file tinyxml.cpp.

int TiXmlBase::Row ( ) const
inlineinherited

Return the position, in the original source file, of this node or attribute.

The row and column are 1-based. (That is the first row and first column is 1,1). If the returns values are 0 or less, then the parser does not have a row and column value.

Generally, the row and column value will be set when the TiXmlDocument::Load(), TiXmlDocument::LoadFile(), or any TiXmlNode::Parse() is called. It will NOT be set when the DOM was created from operator>>.

The values reflect the initial load. Once the DOM is modified programmatically (by adding or changing nodes and attributes) the new values will NOT update to reflect changes in the document.

There is a minor performance cost to computing the row and column. Computation can be disabled if TiXmlDocument::SetTabSize() is called with 0 as the value.

See also
TiXmlDocument::SetTabSize()

Definition at line 264 of file tinyxml.h.

static void TiXmlBase::SetCondenseWhiteSpace ( bool  condense)
inlinestaticinherited

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 this value is not thread safe.

Definition at line 241 of file tinyxml.h.

void TiXmlBase::SetUserData ( void *  user)
inlineinherited

Set a pointer to arbitrary user data.

Definition at line 267 of file tinyxml.h.

void TiXmlNode::SetValue ( const char *  _value)
inline

Changes the value of the node.

Defined as:

Document:  filename of the xml file
Element:  name of the element
Comment:  the comment text
Unknown:  the tag contents
Text:    the text string

Definition at line 531 of file tinyxml.h.

void TiXmlNode::SetValue ( const std::string &  _value)
inline

STL std::string form.

Definition at line 535 of file tinyxml.h.

const char * TiXmlBase::SkipWhiteSpace ( const char *  p,
TiXmlEncoding  encoding 
)
staticprotectedinherited

Definition at line 318 of file tinyxmlparser.cpp.

virtual void TiXmlNode::StreamIn ( std::istream *  in,
std::string *  tag 
)
protectedpure virtual
bool TiXmlBase::StreamTo ( std::istream *  in,
int  character,
std::string *  tag 
)
staticprotectedinherited

Definition at line 384 of file tinyxmlparser.cpp.

bool TiXmlBase::StreamWhiteSpace ( std::istream *  in,
std::string *  tag 
)
staticprotectedinherited

Definition at line 369 of file tinyxmlparser.cpp.

bool TiXmlBase::StringEqual ( const char *  p,
const char *  endTag,
bool  ignoreCase,
TiXmlEncoding  encoding 
)
staticprotectedinherited

Definition at line 538 of file tinyxmlparser.cpp.

virtual const TiXmlComment* TiXmlNode::ToComment ( ) const
inlinevirtual

Cast to a more defined type. Will return null if not of the requested type.

Reimplemented in TiXmlComment.

Definition at line 722 of file tinyxml.h.

virtual TiXmlComment* TiXmlNode::ToComment ( )
inlinevirtual

Cast to a more defined type. Will return null if not of the requested type.

Reimplemented in TiXmlComment.

Definition at line 729 of file tinyxml.h.

virtual const TiXmlDeclaration* TiXmlNode::ToDeclaration ( ) const
inlinevirtual

Cast to a more defined type. Will return null if not of the requested type.

Reimplemented in TiXmlDeclaration.

Definition at line 725 of file tinyxml.h.

virtual TiXmlDeclaration* TiXmlNode::ToDeclaration ( )
inlinevirtual

Cast to a more defined type. Will return null if not of the requested type.

Reimplemented in TiXmlDeclaration.

Definition at line 732 of file tinyxml.h.

virtual const TiXmlDocument* TiXmlNode::ToDocument ( ) const
inlinevirtual

Cast to a more defined type. Will return null if not of the requested type.

Reimplemented in TiXmlDocument.

Definition at line 720 of file tinyxml.h.

virtual TiXmlDocument* TiXmlNode::ToDocument ( )
inlinevirtual

Cast to a more defined type. Will return null if not of the requested type.

Reimplemented in TiXmlDocument.

Definition at line 727 of file tinyxml.h.

virtual const TiXmlElement* TiXmlNode::ToElement ( ) const
inlinevirtual

Cast to a more defined type. Will return null if not of the requested type.

Reimplemented in TiXmlElement.

Definition at line 721 of file tinyxml.h.

virtual TiXmlElement* TiXmlNode::ToElement ( )
inlinevirtual

Cast to a more defined type. Will return null if not of the requested type.

Reimplemented in TiXmlElement.

Definition at line 728 of file tinyxml.h.

static int TiXmlBase::ToLower ( int  v,
TiXmlEncoding  encoding 
)
inlinestaticprotectedinherited

Definition at line 402 of file tinyxml.h.

virtual const TiXmlText* TiXmlNode::ToText ( ) const
inlinevirtual

Cast to a more defined type. Will return null if not of the requested type.

Reimplemented in TiXmlText.

Definition at line 724 of file tinyxml.h.

virtual TiXmlText* TiXmlNode::ToText ( )
inlinevirtual

Cast to a more defined type. Will return null if not of the requested type.

Reimplemented in TiXmlText.

Definition at line 731 of file tinyxml.h.

virtual const TiXmlUnknown* TiXmlNode::ToUnknown ( ) const
inlinevirtual

Cast to a more defined type. Will return null if not of the requested type.

Reimplemented in TiXmlUnknown.

Definition at line 723 of file tinyxml.h.

virtual TiXmlUnknown* TiXmlNode::ToUnknown ( )
inlinevirtual

Cast to a more defined type. Will return null if not of the requested type.

Reimplemented in TiXmlUnknown.

Definition at line 730 of file tinyxml.h.

int TiXmlNode::Type ( ) const
inline

Query the type (as an enumerated value, above) of this node.

The possible types are: DOCUMENT, ELEMENT, COMMENT, UNKNOWN, TEXT, and DECLARATION.

Definition at line 707 of file tinyxml.h.

const char* TiXmlNode::Value ( ) const
inline

The meaning of 'value' changes for the specific type of TiXmlNode.

Document:  filename of the xml file
Element:  name of the element
Comment:  the comment text
Unknown:  the tag contents
Text:    the text string

The subclasses will wrap this function.

Definition at line 510 of file tinyxml.h.

const std::string& TiXmlNode::ValueStr ( ) const
inline

Return Value() as a std::string.

If you only use STL, this is more efficient than calling Value(). Only available in STL mode.

Definition at line 517 of file tinyxml.h.

const std::string& TiXmlNode::ValueTStr ( ) const
inline

Definition at line 520 of file tinyxml.h.

Friends And Related Function Documentation

std::ostream& operator<< ( std::ostream &  out,
const TiXmlNode base 
)
friend

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, and all the children of that root element.

Definition at line 1564 of file tinyxml.cpp.

std::string& operator<< ( std::string &  out,
const TiXmlNode base 
)
friend

Appends the XML node or attribute to a std::string.

Definition at line 1575 of file tinyxml.cpp.

std::istream& operator>> ( std::istream &  in,
TiXmlNode base 
)
friend

An input stream operator, for every class.

Tolerant of newlines and formatting, but doesn't expect them.

Definition at line 1551 of file tinyxml.cpp.

friend class TiXmlDocument
friend

Definition at line 448 of file tinyxml.h.

friend class TiXmlElement
friend

Definition at line 449 of file tinyxml.h.

Member Data Documentation

const char * TiXmlBase::errorString
staticprotectedinherited
Initial value:
=
{
"No error",
"Error",
"Failed to open file",
"Error parsing Element.",
"Failed to read Element name",
"Error reading Element value.",
"Error reading Attributes.",
"Error: empty tag.",
"Error reading end tag.",
"Error parsing Unknown.",
"Error parsing Comment.",
"Error parsing Declaration.",
"Error document empty.",
"Error null (0) or unexpected EOF found in input stream.",
"Error parsing CDATA.",
"Error when TiXmlDocument added to document, because TiXmlDocument can only be at the root.",
}

Definition at line 391 of file tinyxml.h.

TiXmlNode* TiXmlNode::firstChild
protected

Definition at line 781 of file tinyxml.h.

TiXmlNode* TiXmlNode::lastChild
protected

Definition at line 782 of file tinyxml.h.

TiXmlCursor TiXmlBase::location
protectedinherited

Definition at line 393 of file tinyxml.h.

TiXmlNode* TiXmlNode::next
protected

Definition at line 787 of file tinyxml.h.

TiXmlNode* TiXmlNode::parent
protected

Definition at line 778 of file tinyxml.h.

TiXmlNode* TiXmlNode::prev
protected

Definition at line 786 of file tinyxml.h.

NodeType TiXmlNode::type
protected

Definition at line 779 of file tinyxml.h.

void* TiXmlBase::userData
protectedinherited

Field containing a generic user pointer.

Definition at line 396 of file tinyxml.h.

const int TiXmlBase::utf8ByteTable
staticinherited
Initial value:
=
{
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
4, 4, 4, 4, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1
}

Definition at line 273 of file tinyxml.h.

std::string TiXmlNode::value
protected

Definition at line 784 of file tinyxml.h.


The documentation for this class was generated from the following files: