Class XMLUnknown

Inheritance Relationships

Base Type

Class Documentation

class XMLUnknown : public tinyxml2::XMLNode

Any tag that TinyXML-2 doesn't recognize is saved as an unknown. It is a tag of text, but should not be modified. It will be written back to the XML, unchanged, when the file is saved.

DTD tags get thrown into XMLUnknowns.

Public Functions

inline virtual XMLUnknown *ToUnknown() override

Safely cast to an Unknown, or null.

inline virtual const XMLUnknown *ToUnknown() const override
virtual bool Accept(XMLVisitor *visitor) const override

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();

virtual XMLNode *ShallowClone(XMLDocument *document) const override

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.

virtual bool ShallowEqual(const XMLNode *compare) const override

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.

Protected Functions

explicit XMLUnknown(XMLDocument *doc)
virtual ~XMLUnknown()
virtual char *ParseDeep(char *p, StrPair *parentEndTag, int *curLineNumPtr) override