OPTPiX SpriteStudio SDK
 All Classes Namespaces Functions Variables Enumerations Enumerator Pages
tinyxml2::XMLNode Class Referenceabstract

#include <tinyxml2.h>

+ Inheritance diagram for tinyxml2::XMLNode:
+ Collaboration diagram for tinyxml2::XMLNode:

Public Member Functions

const XMLDocument * GetDocument () const
 Get the XMLDocument that owns this XMLNode.
 
XMLDocument * GetDocument ()
 Get the XMLDocument that owns this XMLNode.
 
virtual XMLElement * ToElement ()
 Safely cast to an Element, or null.
 
virtual XMLText * ToText ()
 Safely cast to Text, or null.
 
virtual XMLComment * ToComment ()
 Safely cast to a Comment, or null.
 
virtual XMLDocument * ToDocument ()
 Safely cast to a Document, or null.
 
virtual XMLDeclaration * ToDeclaration ()
 Safely cast to a Declaration, or null.
 
virtual XMLUnknown * ToUnknown ()
 Safely cast to an Unknown, or null.
 
virtual const XMLElement * ToElement () const
 
virtual const XMLText * ToText () const
 
virtual const XMLComment * ToComment () const
 
virtual const XMLDocument * ToDocument () const
 
virtual const XMLDeclaration * ToDeclaration () const
 
virtual const XMLUnknown * ToUnknown () const
 
const char * Value () const
 
void SetValue (const char *val, bool staticMem=false)
 
const XMLNode * Parent () const
 Get the parent of this node on the DOM.
 
XMLNode * Parent ()
 
bool NoChildren () const
 Returns true if this node has no children.
 
const XMLNode * FirstChild () const
 Get the first child node, or null if none exists.
 
XMLNode * FirstChild ()
 
const XMLElement * FirstChildElement (const char *value=0) const
 
XMLElement * FirstChildElement (const char *value=0)
 
const XMLNode * LastChild () const
 Get the last child node, or null if none exists.
 
XMLNode * LastChild ()
 
const XMLElement * LastChildElement (const char *value=0) const
 
XMLElement * LastChildElement (const char *value=0)
 
const XMLNode * PreviousSibling () const
 Get the previous (left) sibling node of this node.
 
XMLNode * PreviousSibling ()
 
const XMLElement * PreviousSiblingElement (const char *value=0) const
 Get the previous (left) sibling element of this node, with an optionally supplied name.
 
XMLElement * PreviousSiblingElement (const char *value=0)
 
const XMLNode * NextSibling () const
 Get the next (right) sibling node of this node.
 
XMLNode * NextSibling ()
 
const XMLElement * NextSiblingElement (const char *value=0) const
 Get the next (right) sibling element of this node, with an optionally supplied name.
 
XMLElement * NextSiblingElement (const char *value=0)
 
XMLNode * InsertEndChild (XMLNode *addThis)
 
XMLNode * LinkEndChild (XMLNode *addThis)
 
XMLNode * InsertFirstChild (XMLNode *addThis)
 
XMLNode * InsertAfterChild (XMLNode *afterThis, XMLNode *addThis)
 
void DeleteChildren ()
 
void DeleteChild (XMLNode *node)
 
virtual XMLNode * ShallowClone (XMLDocument *document) const =0
 
virtual bool ShallowEqual (const XMLNode *compare) const =0
 
virtual bool Accept (XMLVisitor *visitor) const =0
 
virtual char * ParseDeep (char *, StrPair *)
 

Protected Member Functions

 XMLNode (XMLDocument *)
 
 XMLNode (const XMLNode &)
 
XMLNode & operator= (const XMLNode &)
 

Protected Attributes

XMLDocument * _document
 
XMLNode * _parent
 
StrPair _value
 
XMLNode * _firstChild
 
XMLNode * _lastChild
 
XMLNode * _prev
 
XMLNode * _next
 

Friends

class XMLDocument
 
class XMLElement
 

Detailed Description

XMLNode is a base class for every object that is in the XML Document Object Model (DOM), except XMLAttributes. Nodes have siblings, a parent, and children which can be navigated. A node is always in a XMLDocument. The type of a XMLNode can be queried, and it can be cast to its more defined type.

A XMLDocument allocates memory for all its Nodes. When the XMLDocument gets deleted, all its Nodes will also be deleted.

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)

Member Function Documentation

virtual bool tinyxml2::XMLNode::Accept ( XMLVisitor *  visitor) const
pure virtual

Accept a hierarchical visit of the nodes in the TinyXML-2 DOM. Every node in the XML tree will be conditionally visited and the host will be called back via the XMLVisitor interface.

This is essentially a SAX interface for TinyXML-2. (Note however it doesn't re-parse the XML for the callbacks, so the performance of TinyXML-2 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():

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

Implemented in tinyxml2::XMLDocument, tinyxml2::XMLElement, tinyxml2::XMLUnknown, tinyxml2::XMLDeclaration, tinyxml2::XMLComment, and tinyxml2::XMLText.

void tinyxml2::XMLNode::DeleteChild ( XMLNode *  node)

Delete a child of this node.

void tinyxml2::XMLNode::DeleteChildren ( )

Delete all the children of this node.

const XMLElement * tinyxml2::XMLNode::FirstChildElement ( const char *  value = 0) const

Get the first child element, or optionally the first child element with the specified name.

XMLNode * tinyxml2::XMLNode::InsertAfterChild ( XMLNode *  afterThis,
XMLNode *  addThis 
)

Add a node after the specified child node.

XMLNode * tinyxml2::XMLNode::InsertEndChild ( XMLNode *  addThis)

Add a child node as the last (right) child.

XMLNode * tinyxml2::XMLNode::InsertFirstChild ( XMLNode *  addThis)

Add a child node as the first (left) child.

const XMLElement * tinyxml2::XMLNode::LastChildElement ( const char *  value = 0) const

Get the last child element or optionally the last child element with the specified name.

void tinyxml2::XMLNode::SetValue ( const char *  val,
bool  staticMem = false 
)

Set the Value of an XML node.

See Also
Value()
virtual XMLNode* tinyxml2::XMLNode::ShallowClone ( XMLDocument *  document) const
pure virtual

Make a copy of this node, but not its children. You may pass in a Document pointer that will be the owner of the new Node. If the 'document' is null, then the node returned will be allocated from the current Document. (this->GetDocument())

Note: if called on a XMLDocument, this will return null.

Implemented in tinyxml2::XMLDocument, tinyxml2::XMLElement, tinyxml2::XMLUnknown, tinyxml2::XMLDeclaration, tinyxml2::XMLComment, and tinyxml2::XMLText.

virtual bool tinyxml2::XMLNode::ShallowEqual ( const XMLNode *  compare) const
pure virtual

Test if 2 nodes are the same, but don't test children. The 2 nodes do not need to be in the same Document.

Note: if called on a XMLDocument, this will return false.

Implemented in tinyxml2::XMLDocument, tinyxml2::XMLElement, tinyxml2::XMLUnknown, tinyxml2::XMLDeclaration, tinyxml2::XMLComment, and tinyxml2::XMLText.

const char* tinyxml2::XMLNode::Value ( ) const
inline

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

Document:   empty
Element:    name of the element
Comment:    the comment text
Unknown:    the tag contents
Text:       the text string

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