-- Bug 1035218 fixed - documentation errors. Xunji Luo
-- Other bug fixes have accumulated and been fixed on the way as well; my apologies to
- authors not credited!
-- Big fix / addition is to correctly return const values. TinyXml could basically
- remove const in a method like this: TiXmlElement* Foo() const, where the returned element
- was a pointer to internal data. That is now: const TiXmlElement* Foo() const and
- TiXmlElement* Foo().
-
-2.3.4
-- Fixed additional const errors, thanks Kent Gibson.
-- Correctly re-enable warnings after tinyxml header. Thanks Cory Nelson.
-- Variety of type cleanup and warning fixes. Thanks Warren Stevens.
-- Cleaned up unneeded constructor calls in TinyString - thanks to Geoff Carlton and
- the discussion group on sourceforge.
-
-2.4.0
-- Improved string class, thanks Tyge Lovset (whose name gets mangled in English - sorry)
-- Type cast compiler warning, thanks Rob van den Bogaard
-- Added GetText() convenience function. Thanks Ilya Parniuk & Andrew Ellers for input.
-- Many thanks to marlonism for finding an infinite loop in bad xml.
-- A patch to cleanup warnings from Robert Gebis.
-- Added ValueStr() to get the value of a node as a string.
-- TiXmlText can now parse and output as CDATA
-- Additional string improvement from James (z2895)
-- Removed extraneous 'const', thanks David Aldrich
-- First pass at switching to the "safe" stdlib functions. Many people have suggested and
- pushed on this, but Warren Stevens put together the first proposal.
-- TinyXml now will do EOL normalization before parsing, consistent with the W3C XML spec.
-- Documents loaded with the UTF-8 BOM will now save with the UTF-8 BOM. Good suggestion
- from 'instructor_'
-- Ellers submitted his very popular tutorials, which have been added to the distribution.
-
-2.4.1
-- Fixed CDATA output formatting
-- Fixed memory allocators in TinyString to work with overloaded new/delete
-
-2.4.2
-- solosnake pointed out that TIXML_LOG causes problems on an XBOX. The definition in the header
- was superflous and was moved inside of DEBUG_PARSING
-
-2.4.3
-- Fixed a test bug that caused a crash in 'xmltest'. TinyXML was fine, but it isn't good
- to ship with a broken test suite.
-- Started converting some functions to not cast between std::string and const char*
- quite as often.
-- Added FILE* versions of the document loads - good suggestion from Wade Brainerd
-- Empty documents might not always return the errors they should. [1398915] Thanks to igor v.
-- Added some asserts for multiply adding a node, regardng bug [1391937] suggested by Paco Arjonilla.
-
-2.4.4
-- Bug find thanks to andre-gross found a memory leak that occured when a document failed to load.
-- Bug find (and good analysis) by VirtualJim who found a case where attribute parsing
- should be throwing an error and wasn't.
-- Steve Hyatt suggested the QueryValueAttribute method, which is now implemented.
-- DavidA identified a chunk of dead code.
-- Andrew Baxter sent in some compiler warnings that were good clean up points.
-
-2.5
-- Added the Visit() API. Many thanks to both Andrew Ellerton and John-Philip for all their
- work, code, suggestion, and just general pushing that it should be done.
-- Removed existing streaming code and use TiXmlPrinter instead.
-- [ tinyxml-Bugs-1527079 ] Compile error in tinystr.cpp fixed, thanks to Paul Suggs
-- [ tinyxml-Bugs-1522890 ] SaveFile has no error checks fixed, thanks to Ivan Dobrokotov
-- Ivan Dobrokotov also reported redundant memory allocation in the Attribute() method, which
- upon investigation was a mess. The attribute should now be fixed for both const char* and
- std::string, and the return types match the input parameters.
-- Feature [ 1511105 ] Make TiXmlComment constructor accept a string / char*, implemented.
- Thanks to Karl Itschen for the feedback.
-- [ 1480108 ] Stream parsing fails when CDATA contains tags was found by Tobias Grimm, who also
- submitted a test case and patch. A significant bug in CDATA streaming (operator>>) has now
- been fixed.
-
-2.5.2
-- Lieven, and others, pointed out a missing const-cast that upset the Open Watcom compiler.
- Should now be fixed.
-- ErrorRow and ErrorCol should have been const, and weren't. Fixed thanks to Dmitry Polutov.
-
-2.5.3
-- zloe_zlo identified a missing string specialization for QueryValueAttribute() [ 1695429 ]. Worked
- on this bug, but not sure how to fix it in a safe, cross-compiler way.
-- increased warning level to 4 and turned on detect 64 bit portability issues for VC2005.
- May address [ 1677737 ] VS2005: /Wp64 warnings
-- grosheck identified several problems with the Document copy. Many thanks for [ 1660367 ]
-- Nice catch, and suggested fix, be Gilad Novik on the Printer dropping entities.
- "[ 1600650 ] Bug when printing xml text" is now fixed.
-- A subtle fix from Nicos Gollan in the tinystring initializer:
- [ 1581449 ] Fix initialiser of TiXmlString::nullrep_
-- Great catch, although there isn't a submitter for the bug. [ 1475201 ] TinyXML parses entities in comments.
- Comments should not, in fact, parse entities. Fixed the code path and added tests.
-- We were not catching all the returns from ftell. Thanks to Bernard for catching that.
-
-2.5.4
-- A TiXMLDocument can't be a sub-node. Block this from happening in the 'replace'. Thanks Noam.
-- [ 1714831 ] TiXmlBase::location is not copied by copy-ctors, fix reported and suggested by Nicola Civran.
-- Fixed possible memory overrun in the comment reading code - thanks gcarlton77
-
-2.5.5
-- Alex van der Wal spotted incorrect types (lf) being used in print and scan. robertnestor pointed out some problems with the simple solution. Types updated.
-- Johannes Hillert pointed out some bug typos.
-- Christian Mueller identified inconsistent error handling with Attributes.
-- olivier barthelemy also reported a problem with double truncation, also related to the %lf issue.
-- zaelsius came up with a great (and simple) suggestion to fix QueryValueAttribute truncating strings.
-- added some null pointer checks suggested by hansenk
-- Sami Väisänen found a (rare) buffer overrun that could occur in parsing.
-- vi tri filed a bug that led to a refactoring of the attribute setting mess (as well as adding a missing SetDoubleAttribute() )
-- removed TIXML_ERROR_OUT_OF_MEMORY. TinyXML does not systematically address OOO, and the notion it does is misleading.
-- vanneto, keithmarshall, others all reported the warning from IsWhiteSpace() usage. Cleaned this up - many thanks to everyone who reported this one.
-- tibur found a bug in end tag parsing
-
-
-2.6.2
-- Switched over to VC 2010
-- Fixed up all the build issues arising from that. (Lots of latent build problems.)
-- Removed the old, now unmaintained and likely not working, build files.
-- Fixed some static analysis issues reported by orbitcowboy from cppcheck.
-- Bayard 95 sent in analysis from a different analyzer - fixes applied from that as well.
-- Tim Kosse sent a patch fixing an infinite loop.
-- Ma Anguo identified a doc issue.
-- Eddie Cohen identified a missing qualifier resulting in a compilation error on some systems.
-- Fixed a line ending bug. (What year is this? Can we all agree on a format for text files? Please? ...oh well.)
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+</div><!-- top -->
+<div class="PageDoc"><div class="header">
+ <div class="headertitle">
+<div class="title">Load an XML File </div> </div>
+</div><!--header-->
+<div class="contents">
+<div class="textblock"><p> Basic XML file loading. The basic syntax to load an XML file from disk and check for an error. (ErrorID() will return 0 for no error.) </p><div class="fragment"><div class="line"><span class="keywordtype">int</span> example_1()</div>
+Generated on Sun Jun 6 2021 17:10:05 for TinyXML-2 by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.1
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+</div><!-- top -->
+<div class="PageDoc"><div class="header">
+ <div class="headertitle">
+<div class="title">Parse an XML from char buffer </div> </div>
+</div><!--header-->
+<div class="contents">
+<div class="textblock"><p> Basic XML string parsing. The basic syntax to parse an XML for a char* and check for an error. (ErrorID() will return 0 for no error.) </p><div class="fragment"><div class="line"><span class="keywordtype">int</span> example_2()</div>
+Generated on Sun Jun 6 2021 17:10:05 for TinyXML-2 by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.1
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+</div><!-- top -->
+<div class="PageDoc"><div class="header">
+ <div class="headertitle">
+<div class="title">Get information out of XML </div> </div>
+</div><!--header-->
+<div class="contents">
+<div class="textblock"><p> In this example, we navigate a simple XML file, and read some interesting text. Note that this example doesn't use error checking; working code should check for null pointers when walking an XML tree, or use XMLHandle.</p>
+</div><!-- fragment --><p> The structure of the XML file is:</p>
+<ul>
+<li>
+(declaration) </li>
+<li>
+(dtd stuff) </li>
+<li>
+Element "PLAY" <ul>
+<li>
+Element "TITLE" <ul>
+<li>
+Text "A Midsummer Night's Dream" </li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+<p>For this example, we want to print out the title of the play. The text of the title (what we want) is child of the "TITLE" element which is a child of the "PLAY" element.</p>
+<p>We want to skip the declaration and dtd, so the method FirstChildElement() is a good choice. The FirstChildElement() of the Document is the "PLAY" Element, the FirstChildElement() of the "PLAY" Element is the "TITLE" Element.</p>
+</div><!-- fragment --><p> We can then use the convenience function GetText() to get the title of the play.</p>
+<div class="fragment"><div class="line"> <span class="keyword">const</span> <span class="keywordtype">char</span>* title = titleElement->GetText();</div>
+<div class="line"> printf( <span class="stringliteral">"Name of play (1): %s\n"</span>, title );</div>
+</div><!-- fragment --><p> Text is just another Node in the XML DOM. And in fact you should be a little cautious with it, as text nodes can contain elements.</p>
+<pre class="fragment">Consider: A Midsummer Night's <b>Dream</b>
+</pre><p>It is more correct to actually query the Text Node if in doubt:</p>
+<div class="line"> title = textNode->Value();</div>
+<div class="line"> printf( <span class="stringliteral">"Name of play (2): %s\n"</span>, title );</div>
+</div><!-- fragment --><p> Noting that here we use FirstChild() since we are looking for XMLText, not an element, and ToText() is a cast from a Node to a XMLText. </p>
+Generated on Sun Jun 6 2021 17:10:05 for TinyXML-2 by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.1
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+</div><!-- top -->
+<div class="PageDoc"><div class="header">
+ <div class="headertitle">
+<div class="title">Read attributes and text information. </div> </div>
+</div><!--header-->
+<div class="contents">
+<div class="textblock"><p></p>
+<p>There are fundamentally 2 ways of writing a key-value pair into an XML file. (Something that's always annoyed me about XML.) Either by using attributes, or by writing the key name into an element and the value into the text node wrapped by the element. Both approaches are illustrated in this example, which shows two ways to encode the value "2" into the key "v":</p>
+</div><!-- fragment --><p> TinyXML-2 has accessors for both approaches.</p>
+<p>When using an attribute, you navigate to the XMLElement with that attribute and use the QueryIntAttribute() group of methods. (Also QueryFloatAttribute(), etc.)</p>
+</div><!-- fragment --><p> When using the text approach, you need to navigate down one more step to the XMLElement that contains the text. Note the extra FirstChildElement( "v" ) in the code below. The value of the text can then be safely queried with the QueryIntText() group of methods. (Also QueryFloatText(), etc.)</p>
+Generated on Sun Jun 6 2021 17:10:05 for TinyXML-2 by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.1
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+ <div class="headertitle">
+<div class="title">Class List</div> </div>
+</div><!--header-->
<div class="contents">
<div class="contents">
-<h1>Class List</h1>Here are the classes, structs, unions and interfaces with brief descriptions:<table>
- <tr><td class="indexkey"><a class="el" href="classTiXmlAttribute.html">TiXmlAttribute</a></td><td class="indexvalue">An attribute is a name-value pair </td></tr>
- <tr><td class="indexkey"><a class="el" href="classTiXmlBase.html">TiXmlBase</a></td><td class="indexvalue"><a class="el" href="classTiXmlBase.html" title="TiXmlBase is a base class for every class in TinyXml.">TiXmlBase</a> is a base class for every class in TinyXml </td></tr>
- <tr><td class="indexkey"><a class="el" href="classTiXmlComment.html">TiXmlComment</a></td><td class="indexvalue">An XML comment </td></tr>
- <tr><td class="indexkey"><a class="el" href="classTiXmlDeclaration.html">TiXmlDeclaration</a></td><td class="indexvalue">In correct XML the declaration is the first entry in the file </td></tr>
- <tr><td class="indexkey"><a class="el" href="classTiXmlDocument.html">TiXmlDocument</a></td><td class="indexvalue">Always the top level node </td></tr>
- <tr><td class="indexkey"><a class="el" href="classTiXmlElement.html">TiXmlElement</a></td><td class="indexvalue">The element is a container class </td></tr>
- <tr><td class="indexkey"><a class="el" href="classTiXmlHandle.html">TiXmlHandle</a></td><td class="indexvalue">A <a class="el" href="classTiXmlHandle.html" title="A TiXmlHandle is a class that wraps a node pointer with null checks; this is an incredibly...">TiXmlHandle</a> is a class that wraps a node pointer with null checks; this is an incredibly useful thing </td></tr>
- <tr><td class="indexkey"><a class="el" href="classTiXmlNode.html">TiXmlNode</a></td><td class="indexvalue">The parent class for everything in the Document Object Model </td></tr>
- <tr><td class="indexkey"><a class="el" href="classTiXmlPrinter.html">TiXmlPrinter</a></td><td class="indexvalue">Print to memory functionality </td></tr>
- <tr><td class="indexkey"><a class="el" href="classTiXmlText.html">TiXmlText</a></td><td class="indexvalue">XML text </td></tr>
- <tr><td class="indexkey"><a class="el" href="classTiXmlUnknown.html">TiXmlUnknown</a></td><td class="indexvalue">Any tag that tinyXml doesn't recognize is saved as an unknown </td></tr>
- <tr><td class="indexkey"><a class="el" href="classTiXmlVisitor.html">TiXmlVisitor</a></td><td class="indexvalue">Implements the interface to the "Visitor pattern" (see the Accept() method </td></tr>
+<div class="textblock">Here are the classes, structs, unions and interfaces with brief descriptions:</div><div class="directory">
+Generated on Sun Jun 6 2021 17:10:05 for TinyXML-2 by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.1
-<h1>TiXmlAttribute Member List</h1>This is the complete list of members for <a class="el" href="classTiXmlAttribute.html">TiXmlAttribute</a>, including all inherited members.<table>
-<tr><td class="mdescLeft"> </td><td class="mdescRight">QueryIntValue examines the value string. <a href="#ad6c93088ee21af41a107931223339344"></a><br/></td></tr>
-<tr><td class="mdescLeft"> </td><td class="mdescRight">QueryDoubleValue examines the value string. See <a class="el" href="classTiXmlAttribute.html#ad6c93088ee21af41a107931223339344" title="QueryIntValue examines the value string.">QueryIntValue()</a>. <br/></td></tr>
-<tr><td class="mdescLeft"> </td><td class="mdescRight">All TinyXml classes can print themselves to a filestream or the string class (TiXmlString in non-STL mode, std::string in STL mode. <a href="#acc04956c1d5c4c31fe74f7a7528d109a"></a><br/></td></tr>
-<p>Elements have an arbitrary number of attributes, each with a unique name.</p>
-<dl class="note"><dt><b>Note:</b></dt><dd>The attributes are not TiXmlNodes, since they are not part of the tinyXML document object model. There are other suggested ways to look at this problem. </dd></dl>
-<p>It is an alternative to the <a class="el" href="classTiXmlAttribute.html#aa1a20ad59dc7e89a0ab265396360d50f" title="Return the value of this attribute, converted to an integer.">IntValue()</a> method with richer error checking. If the value is an integer, it is stored in 'value' and the call returns TIXML_SUCCESS. If it is not an integer, it returns TIXML_WRONG_TYPE.</p>
-<p>A specialized but useful call. Note that for success it returns 0, which is the opposite of almost all other TinyXml calls. </p>
-
-</div>
-</div>
-<hr/>The documentation for this class was generated from the following file:<ul>
-<h1>TiXmlBase Member List</h1>This is the complete list of members for <a class="el" href="classTiXmlBase.html">TiXmlBase</a>, including all inherited members.<table>
-<h1>TiXmlBase Class Reference</h1><!-- doxytag: class="TiXmlBase" -->
-<p><a class="el" href="classTiXmlBase.html" title="TiXmlBase is a base class for every class in TinyXml.">TiXmlBase</a> is a base class for every class in TinyXml.
-<tr><td class="mdescLeft"> </td><td class="mdescRight">All TinyXml classes can print themselves to a filestream or the string class (TiXmlString in non-STL mode, std::string in STL mode. <a href="#a0de56b3f2ef14c65091a3b916437b512"></a><br/></td></tr>
-<tr><td class="mdescLeft"> </td><td class="mdescRight">Return the position, in the original source file, of this node or attribute. <a href="#a024bceb070188df92c2a8d8852dd0853"></a><br/></td></tr>
-<tr><td class="mdescLeft"> </td><td class="mdescRight">See <a class="el" href="classTiXmlBase.html#a024bceb070188df92c2a8d8852dd0853" title="Return the position, in the original source file, of this node or attribute.">Row()</a>. <br/></td></tr>
-<tr><td class="mdescLeft"> </td><td class="mdescRight">The world does not agree on whether white space should be kept or not. <a href="#a0f799ec645bfb8d8a969e83478f379c1"></a><br/></td></tr>
-<tr><td class="mdescLeft"> </td><td class="mdescRight">Expands entities in a string. <a href="#a6bd8c315c1acb09e34107b8736505948"></a><br/></td></tr>
-<p><a class="el" href="classTiXmlBase.html" title="TiXmlBase is a base class for every class in TinyXml.">TiXmlBase</a> is a base class for every class in TinyXml. </p>
-<p>It does little except to establish that TinyXml classes can be printed and provide some utility functions.</p>
-<p>In XML, the document and elements can contain other elements and other types of nodes.</p>
-<div class="fragment"><pre class="fragment">
- 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)
-
- A Decleration contains: Attributes (not on tree)
- </pre></div> <hr/><h2>Member Function Documentation</h2>
-<p>Return the position, in the original source file, of this node or attribute. </p>
-<p>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.</p>
-<p>Generally, the row and column value will be set when the TiXmlDocument::Load(), <a class="el" href="classTiXmlDocument.html#a4c852a889c02cf251117fd1d9fe1845f" title="Load a file using the current document value.">TiXmlDocument::LoadFile()</a>, or any TiXmlNode::Parse() is called. It will NOT be set when the DOM was created from operator>>.</p>
-<p>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.</p>
-<p>There is a minor performance cost to computing the row and column. Computation can be disabled if <a class="el" href="classTiXmlDocument.html#a51dac56316f89b35bdb7d0d433ba988e" title="SetTabSize() allows the error reporting functions (ErrorRow() and ErrorCol()) to...">TiXmlDocument::SetTabSize()</a> is called with 0 as the value.</p>
-<dl class="see"><dt><b>See also:</b></dt><dd><a class="el" href="classTiXmlDocument.html#a51dac56316f89b35bdb7d0d433ba988e" title="SetTabSize() allows the error reporting functions (ErrorRow() and ErrorCol()) to...">TiXmlDocument::SetTabSize()</a> </dd></dl>
-<p>The world does not agree on whether white space should be kept or not. </p>
-<p>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. </p>
-
-</div>
-</div>
-<hr/>The documentation for this class was generated from the following file:<ul>
-<h1>TiXmlComment Member List</h1>This is the complete list of members for <a class="el" href="classTiXmlComment.html">TiXmlComment</a>, including all inherited members.<table>
-<tr><td class="mdescLeft"> </td><td class="mdescRight">All TinyXml classes can print themselves to a filestream or the string class (TiXmlString in non-STL mode, std::string in STL mode. <a href="#a6b316527aaa8da0370cd68c22a5a0f5f"></a><br/></td></tr>
-<h1>TiXmlDeclaration Member List</h1>This is the complete list of members for <a class="el" href="classTiXmlDeclaration.html">TiXmlDeclaration</a>, including all inherited members.<table>
-<tr><td class="mdescLeft"> </td><td class="mdescRight">All TinyXml classes can print themselves to a filestream or the string class (TiXmlString in non-STL mode, std::string in STL mode. <a href="#abf6303db4bd05b5be554036817ff1cb4"></a><br/></td></tr>
-<p>In correct XML the declaration is the first entry in the file. </p>
-<div class="fragment"><pre class="fragment">
- <?xml version="1.0" standalone="yes"?>
- </pre></div><p>TinyXml will happily read or write files without a declaration, however. There are 3 possible attributes to the declaration: version, encoding, and standalone.</p>
-<p>Note: In this version of the code, the attributes are handled as special cases, not generic attributes, simply because there can only be at most 3 and they are always the same. </p>
-<h1>TiXmlDocument Member List</h1>This is the complete list of members for <a class="el" href="classTiXmlDocument.html">TiXmlDocument</a>, including all inherited members.<table>
-<tr><td class="mdescLeft"> </td><td class="mdescRight">Create a document with a name. The name of the document is also the filename of the xml. <br/></td></tr>
-<tr><td class="mdescLeft"> </td><td class="mdescRight">Load a file using the current document value. <a href="#a4c852a889c02cf251117fd1d9fe1845f"></a><br/></td></tr>
-<tr><td class="mdescLeft"> </td><td class="mdescRight">Load a file using the given FILE*. <a href="#a41f6fe7200864d1dca663d230caf8db6"></a><br/></td></tr>
-<tr><td class="mdescLeft"> </td><td class="mdescRight">Parse the given null terminated block of xml data. <a href="#a17ebabe36926ef398e78dec0d0ad0378"></a><br/></td></tr>
-<tr><td class="mdescLeft"> </td><td class="mdescRight">Get the root element -- the only top level element -- of the document. <a href="#ad09d17927f908f40efb406af2fb873be"></a><br/></td></tr>
-<tr><td class="mdescLeft"> </td><td class="mdescRight">If an error occurs, Error will be set to true. <a href="#a6dfc01a6e5d58e56acd537dfd3bdeb29"></a><br/></td></tr>
-<tr><td class="mdescLeft"> </td><td class="mdescRight">Generally, you probably want the error string ( <a class="el" href="classTiXmlDocument.html#a9d0f689f6e09ea494ea547be8d79c25e" title="Contains a textual (english) description of the error if one occurs.">ErrorDesc()</a> ). <a href="#af96fc2f3f9ec6422782bfe916c9e778f"></a><br/></td></tr>
-<tr><td class="mdescLeft"> </td><td class="mdescRight">Returns the location (if known) of the error. <a href="#af30efc75e804aa2e92fb8be3a8cb676e"></a><br/></td></tr>
-<tr><td class="mdescLeft"> </td><td class="mdescRight">The column where the error occured. See <a class="el" href="classTiXmlDocument.html#af30efc75e804aa2e92fb8be3a8cb676e" title="Returns the location (if known) of the error.">ErrorRow()</a>. <br/></td></tr>
-<tr><td class="mdescLeft"> </td><td class="mdescRight"><a class="el" href="classTiXmlDocument.html#a51dac56316f89b35bdb7d0d433ba988e" title="SetTabSize() allows the error reporting functions (ErrorRow() and ErrorCol()) to...">SetTabSize()</a> allows the error reporting functions (<a class="el" href="classTiXmlDocument.html#af30efc75e804aa2e92fb8be3a8cb676e" title="Returns the location (if known) of the error.">ErrorRow()</a> and <a class="el" href="classTiXmlDocument.html#aa90bc630ee5203c6109ca5fad3323649" title="The column where the error occured. See ErrorRow().">ErrorCol()</a>) to report the correct values for row and column. <a href="#a51dac56316f89b35bdb7d0d433ba988e"></a><br/></td></tr>
-<tr><td class="mdescLeft"> </td><td class="mdescRight">If you have handled the error, it can be reset with this call. <a href="#ac66b8c28db86363315712a3574e87c35"></a><br/></td></tr>
-<tr><td class="mdescLeft"> </td><td class="mdescRight">Write the document to standard out using formatted printing ("pretty print"). <a href="#af08389ec70ee9b2de7f800e206a18510"></a><br/></td></tr>
-<tr><td class="mdescLeft"> </td><td class="mdescRight">Create an exact duplicate of this node and return it. <a href="#a4968661cab4a1f44a23329c6f8db1907"></a><br/></td></tr>
-<p>A document binds together all the XML pieces. It can be saved, loaded, and printed to the screen. The 'value' of a document node is the xml file name. </p>
-<p>If an error occurs, Error will be set to true. </p>
-<p>Also,</p>
-<ul>
-<li>The <a class="el" href="classTiXmlDocument.html#af96fc2f3f9ec6422782bfe916c9e778f" title="Generally, you probably want the error string ( ErrorDesc() ).">ErrorId()</a> will contain the integer identifier of the error (not generally useful)</li>
-<li>The <a class="el" href="classTiXmlDocument.html#a9d0f689f6e09ea494ea547be8d79c25e" title="Contains a textual (english) description of the error if one occurs.">ErrorDesc()</a> method will return the name of the error. (very useful)</li>
-<li>The <a class="el" href="classTiXmlDocument.html#af30efc75e804aa2e92fb8be3a8cb676e" title="Returns the location (if known) of the error.">ErrorRow()</a> and <a class="el" href="classTiXmlDocument.html#aa90bc630ee5203c6109ca5fad3323649" title="The column where the error occured. See ErrorRow().">ErrorCol()</a> will return the location of the error (if known) </li>
-<p>Generally, you probably want the error string ( <a class="el" href="classTiXmlDocument.html#a9d0f689f6e09ea494ea547be8d79c25e" title="Contains a textual (english) description of the error if one occurs.">ErrorDesc()</a> ). </p>
-<p>But if you prefer the ErrorId, this function will fetch it. </p>
-<p>Returns the location (if known) of the error. </p>
-<p>The first column is column 1, and the first row is row 1. A value of 0 means the row and column wasn't applicable (memory errors, for example, have no row/column) or the parser lost the error. (An error in the error reporting, in that case.)</p>
-<dl class="see"><dt><b>See also:</b></dt><dd><a class="el" href="classTiXmlDocument.html#a51dac56316f89b35bdb7d0d433ba988e" title="SetTabSize() allows the error reporting functions (ErrorRow() and ErrorCol()) to...">SetTabSize</a>, <a class="el" href="classTiXmlBase.html#a024bceb070188df92c2a8d8852dd0853" title="Return the position, in the original source file, of this node or attribute.">Row</a>, <a class="el" href="classTiXmlBase.html#ab54bfb9b70fe6dd276e7b279cab7f003" title="See Row().">Column</a> </dd></dl>
-<p>Returns true if successful. Note that this method doesn't stream - the entire object pointed at by the FILE* will be interpreted as an XML file. TinyXML doesn't stream in XML from the current file location. Streaming may be added in the future. </p>
-<p>Parse the given null terminated block of xml data. </p>
-<p>Passing in an encoding to this method (either TIXML_ENCODING_LEGACY or TIXML_ENCODING_UTF8 will force TinyXml to use that encoding, regardless of what TinyXml might otherwise try to detect. </p>
-<p><a class="el" href="classTiXmlDocument.html#a51dac56316f89b35bdb7d0d433ba988e" title="SetTabSize() allows the error reporting functions (ErrorRow() and ErrorCol()) to...">SetTabSize()</a> allows the error reporting functions (<a class="el" href="classTiXmlDocument.html#af30efc75e804aa2e92fb8be3a8cb676e" title="Returns the location (if known) of the error.">ErrorRow()</a> and <a class="el" href="classTiXmlDocument.html#aa90bc630ee5203c6109ca5fad3323649" title="The column where the error occured. See ErrorRow().">ErrorCol()</a>) to report the correct values for row and column. </p>
-<p>It does not change the output or input in any way.</p>
-<p>By calling this method, with a tab size greater than 0, the row and column of each node and attribute is stored when the file is loaded. Very useful for tracking the DOM back in to the source file.</p>
-<p>The tab size is required for calculating the location of nodes. If not set, the default of 4 is used. The tabsize is set per document. Setting the tabsize to 0 disables row/column tracking.</p>
-<p>Note that row and column tracking is not supported when using operator>>.</p>
-<p>The tab size needs to be enabled before the parse or load. Correct usage: </p>
-<div class="fragment"><pre class="fragment">
- TiXmlDocument doc;
- doc.SetTabSize( 8 );
- doc.Load( "myfile.xml" );
- </pre></div><dl class="see"><dt><b>See also:</b></dt><dd><a class="el" href="classTiXmlBase.html#a024bceb070188df92c2a8d8852dd0853" title="Return the position, in the original source file, of this node or attribute.">Row</a>, <a class="el" href="classTiXmlBase.html#ab54bfb9b70fe6dd276e7b279cab7f003" title="See Row().">Column</a> </dd></dl>
-
-</div>
-</div>
-<hr/>The documentation for this class was generated from the following file:<ul>
-<h1>TiXmlElement Member List</h1>This is the complete list of members for <a class="el" href="classTiXmlElement.html">TiXmlElement</a>, including all inherited members.<table>
-<tr><td class="mdescLeft"> </td><td class="mdescRight">Given an attribute name, <a class="el" href="classTiXmlElement.html#ae419a442a9701a62b0c3d8fd1cbdd12d" title="Given an attribute name, Attribute() returns the value for the attribute of that...">Attribute()</a> returns the value for the attribute of that name, or null if none exists. <br/></td></tr>
-<tr><td class="mdescLeft"> </td><td class="mdescRight">Given an attribute name, <a class="el" href="classTiXmlElement.html#ae419a442a9701a62b0c3d8fd1cbdd12d" title="Given an attribute name, Attribute() returns the value for the attribute of that...">Attribute()</a> returns the value for the attribute of that name, or null if none exists. <a href="#a0ed8348fdc56b72a6b4900ce5bac1849"></a><br/></td></tr>
-<tr><td class="mdescLeft"> </td><td class="mdescRight">Given an attribute name, <a class="el" href="classTiXmlElement.html#ae419a442a9701a62b0c3d8fd1cbdd12d" title="Given an attribute name, Attribute() returns the value for the attribute of that...">Attribute()</a> returns the value for the attribute of that name, or null if none exists. <a href="#aeaff99d4f0ea5b34f7aee202aad457ba"></a><br/></td></tr>
-<tr><td class="mdescLeft"> </td><td class="mdescRight">QueryIntAttribute examines the attribute - it is an alternative to the <a class="el" href="classTiXmlElement.html#ae419a442a9701a62b0c3d8fd1cbdd12d" title="Given an attribute name, Attribute() returns the value for the attribute of that...">Attribute()</a> method with richer error checking. <a href="#aea0bfe471380f281c5945770ddbf52b9"></a><br/></td></tr>
-<tr><td class="mdescLeft"> </td><td class="mdescRight">QueryUnsignedAttribute examines the attribute - see <a class="el" href="classTiXmlElement.html#aea0bfe471380f281c5945770ddbf52b9" title="QueryIntAttribute examines the attribute - it is an alternative to the Attribute()...">QueryIntAttribute()</a>. <br/></td></tr>
-<tr><td class="mdescLeft"> </td><td class="mdescRight">QueryBoolAttribute examines the attribute - see <a class="el" href="classTiXmlElement.html#aea0bfe471380f281c5945770ddbf52b9" title="QueryIntAttribute examines the attribute - it is an alternative to the Attribute()...">QueryIntAttribute()</a>. <a href="#af4a1d3f88c28eb0f3115dc39ebd83fff"></a><br/></td></tr>
-<tr><td class="mdescLeft"> </td><td class="mdescRight">QueryDoubleAttribute examines the attribute - see <a class="el" href="classTiXmlElement.html#aea0bfe471380f281c5945770ddbf52b9" title="QueryIntAttribute examines the attribute - it is an alternative to the Attribute()...">QueryIntAttribute()</a>. <br/></td></tr>
-<tr><td class="mdescLeft"> </td><td class="mdescRight">QueryFloatAttribute examines the attribute - see <a class="el" href="classTiXmlElement.html#aea0bfe471380f281c5945770ddbf52b9" title="QueryIntAttribute examines the attribute - it is an alternative to the Attribute()...">QueryIntAttribute()</a>. <br/></td></tr>
-<tr><td class="mdescLeft"> </td><td class="mdescRight">QueryStringAttribute examines the attribute - see <a class="el" href="classTiXmlElement.html#aea0bfe471380f281c5945770ddbf52b9" title="QueryIntAttribute examines the attribute - it is an alternative to the Attribute()...">QueryIntAttribute()</a>. <br/></td></tr>
-<tr><td class="memTemplParams" colspan="2">template<typename T > </td></tr>
-<tr><td class="mdescLeft"> </td><td class="mdescRight">Template form of the attribute query which will try to read the attribute into the specified type. <a href="#ae3b9a03b0a56663a40801c7256683576"></a><br/></td></tr>
-<tr><td class="mdescLeft"> </td><td class="mdescRight">Sets an attribute of name to a given value. <a href="#abf0b3bd7f0e4c746a89ec6e7f101fc32"></a><br/></td></tr>
-<tr><td class="mdescLeft"> </td><td class="mdescRight">Sets an attribute of name to a given value. <a href="#ace6f4be75e373726d4774073d666d1a7"></a><br/></td></tr>
-<tr><td class="mdescLeft"> </td><td class="mdescRight">Sets an attribute of name to a given value. <a href="#a0d1dd975d75496778177e35abfe0ec0b"></a><br/></td></tr>
-<tr><td class="mdescLeft"> </td><td class="mdescRight">Convenience function for easy access to the text inside an element. <a href="#af3282294986cdb216646ea1f67af2c87"></a><br/></td></tr>
-<tr><td class="mdescLeft"> </td><td class="mdescRight">All TinyXml classes can print themselves to a filestream or the string class (TiXmlString in non-STL mode, std::string in STL mode. <a href="#afbf52736e70fc91ec9d760721d6f4fd2"></a><br/></td></tr>
-<p>It has a value, the element name, and can contain other elements, text, comments, and unknowns. Elements also contain an arbitrary number of attributes. </p>
-<p>Given an attribute name, <a class="el" href="classTiXmlElement.html#ae419a442a9701a62b0c3d8fd1cbdd12d" title="Given an attribute name, Attribute() returns the value for the attribute of that...">Attribute()</a> returns the value for the attribute of that name, or null if none exists. </p>
-<p>If the attribute exists and can be converted to an double, the double value will be put in the return 'd', if 'd' is non-null. </p>
-<p>Given an attribute name, <a class="el" href="classTiXmlElement.html#ae419a442a9701a62b0c3d8fd1cbdd12d" title="Given an attribute name, Attribute() returns the value for the attribute of that...">Attribute()</a> returns the value for the attribute of that name, or null if none exists. </p>
-<p>If the attribute exists and can be converted to an integer, the integer value will be put in the return 'i', if 'i' is non-null. </p>
-<p>Convenience function for easy access to the text inside an element. </p>
-<p>Although easy and concise, <a class="el" href="classTiXmlElement.html#af3282294986cdb216646ea1f67af2c87" title="Convenience function for easy access to the text inside an element.">GetText()</a> is limited compared to getting the <a class="el" href="classTiXmlText.html" title="XML text.">TiXmlText</a> child and accessing it directly.</p>
-<p>If the first child of 'this' is a <a class="el" href="classTiXmlText.html" title="XML text.">TiXmlText</a>, the <a class="el" href="classTiXmlElement.html#af3282294986cdb216646ea1f67af2c87" title="Convenience function for easy access to the text inside an element.">GetText()</a> returns the character string of the Text node, else null is returned.</p>
-<p>This is a convenient method for getting the text of simple contained text: </p>
-<div class="fragment"><pre class="fragment">
- <foo>This is text</foo>
- const char* str = fooElement->GetText();
- </pre></div><p>'str' will be a pointer to "This is text".</p>
-<p>Note that this function can be misleading. If the element foo was created from this XML: </p>
-<div class="fragment"><pre class="fragment">
- <foo><b>This is text</b></foo>
- </pre></div><p>then the value of str would be null. The first child node isn't a text node, it is another element. From this XML: </p>
-<div class="fragment"><pre class="fragment">
- <foo>This is <b>text</b></foo>
- </pre></div><p> <a class="el" href="classTiXmlElement.html#af3282294986cdb216646ea1f67af2c87" title="Convenience function for easy access to the text inside an element.">GetText()</a> will return "This is ".</p>
-<p>WARNING: <a class="el" href="classTiXmlElement.html#af3282294986cdb216646ea1f67af2c87" title="Convenience function for easy access to the text inside an element.">GetText()</a> accesses a child node - don't become confused with the similarly named <a class="el" href="classTiXmlHandle.html#a9fc739c8a18d160006f82572fc143d13">TiXmlHandle::Text()</a> and <a class="el" href="classTiXmlNode.html#a3ddfbcac78fbea041fad57e5c6d60a03" title="Cast to a more defined type. Will return null if not of the requested type.">TiXmlNode::ToText()</a> which are safe type casts on the referenced node. </p>
-<p>QueryBoolAttribute examines the attribute - see <a class="el" href="classTiXmlElement.html#aea0bfe471380f281c5945770ddbf52b9" title="QueryIntAttribute examines the attribute - it is an alternative to the Attribute()...">QueryIntAttribute()</a>. </p>
-<p>Note that '1', 'true', or 'yes' are considered true, while '0', 'false' and 'no' are considered false. </p>
-<p>QueryIntAttribute examines the attribute - it is an alternative to the <a class="el" href="classTiXmlElement.html#ae419a442a9701a62b0c3d8fd1cbdd12d" title="Given an attribute name, Attribute() returns the value for the attribute of that...">Attribute()</a> method with richer error checking. </p>
-<p>If the attribute is an integer, it is stored in 'value' and the call returns TIXML_SUCCESS. If it is not an integer, it returns TIXML_WRONG_TYPE. If the attribute does not exist, then TIXML_NO_ATTRIBUTE is returned. </p>
-<h1>TiXmlHandle Member List</h1>This is the complete list of members for <a class="el" href="classTiXmlHandle.html">TiXmlHandle</a>, including all inherited members.<table>
-<h1>TiXmlHandle Class Reference</h1><!-- doxytag: class="TiXmlHandle" -->
-<p>A <a class="el" href="classTiXmlHandle.html" title="A TiXmlHandle is a class that wraps a node pointer with null checks; this is an incredibly...">TiXmlHandle</a> is a class that wraps a node pointer with null checks; this is an incredibly useful thing.
-<tr><td class="mdescLeft"> </td><td class="mdescRight">Create a handle from any node (at any depth of the tree.) This can be a null pointer. <br/></td></tr>
-<tr><td class="mdescLeft"> </td><td class="mdescRight">Return a handle to the "index" child with the given name. <a href="#a072492b4be1acdb0db2d03cd8f71ccc4"></a><br/></td></tr>
-<tr><td class="mdescLeft"> </td><td class="mdescRight">Return a handle to the "index" child. <a href="#af9cf6a7d08a5da94a8924425ad0cd5ac"></a><br/></td></tr>
-<tr><td class="mdescLeft"> </td><td class="mdescRight">Return a handle to the "index" child element with the given name. <a href="#a979a3f850984a176ee884e394c7eed2d"></a><br/></td></tr>
-<tr><td class="mdescLeft"> </td><td class="mdescRight">Return a handle to the "index" child element. <a href="#a8786475b9d1f1518492e3a46704c7ef0"></a><br/></td></tr>
-<tr><td class="mdescLeft"> </td><td class="mdescRight">Return the handle as a <a class="el" href="classTiXmlNode.html" title="The parent class for everything in the Document Object Model.">TiXmlNode</a>. <a href="#af678e5088e83be67baf76f699756f2c3"></a><br/></td></tr>
-<tr><td class="mdescLeft"> </td><td class="mdescRight">Return the handle as a <a class="el" href="classTiXmlElement.html" title="The element is a container class.">TiXmlElement</a>. <a href="#abc6e7ed383a5fe1e52b0c0004b457b9e"></a><br/></td></tr>
-<tr><td class="mdescLeft"> </td><td class="mdescRight">Return the handle as a <a class="el" href="classTiXmlText.html" title="XML text.">TiXmlText</a>. <a href="#a4ac53a652296203a5b5e13854d923586"></a><br/></td></tr>
-<tr><td class="mdescLeft"> </td><td class="mdescRight">Return the handle as a <a class="el" href="classTiXmlUnknown.html" title="Any tag that tinyXml doesn't recognize is saved as an unknown.">TiXmlUnknown</a>. <a href="#a1381c17507a130767b1e23afc93b3674"></a><br/></td></tr>
-<p>A <a class="el" href="classTiXmlHandle.html" title="A TiXmlHandle is a class that wraps a node pointer with null checks; this is an incredibly...">TiXmlHandle</a> is a class that wraps a node pointer with null checks; this is an incredibly useful thing. </p>
-<p>Note that <a class="el" href="classTiXmlHandle.html" title="A TiXmlHandle is a class that wraps a node pointer with null checks; this is an incredibly...">TiXmlHandle</a> is not part of the TinyXml DOM structure. It is a separate utility class.</p>
-<p>Take an example: </p>
-<div class="fragment"><pre class="fragment">
- <Document>
- <Element attributeA = "valueA">
- <Child attributeB = "value1" />
- <Child attributeB = "value2" />
- </Element>
- <Document>
- </pre></div><p>Assuming you want the value of "attributeB" in the 2nd "Child" element, it's very easy to write a *lot* of code that looks like:</p>
- </pre></div><p>And that doesn't even cover "else" cases. <a class="el" href="classTiXmlHandle.html" title="A TiXmlHandle is a class that wraps a node pointer with null checks; this is an incredibly...">TiXmlHandle</a> addresses the verbosity of such code. A <a class="el" href="classTiXmlHandle.html" title="A TiXmlHandle is a class that wraps a node pointer with null checks; this is an incredibly...">TiXmlHandle</a> checks for null pointers so it is perfectly safe and correct to use:</p>
- </pre></div><p>It seems reasonable, but it is in fact two embedded while loops. The Child method is a linear walk to find the element, so this code would iterate much more than it needs to. Instead, prefer:</p>
-<dl class="deprecated"><dt><b><a class="el" href="deprecated.html#_deprecated000002">Deprecated:</a></b></dt><dd>use ToElement. Return the handle as a <a class="el" href="classTiXmlElement.html" title="The element is a container class.">TiXmlElement</a>. This may return null. </dd></dl>
-<dl class="deprecated"><dt><b><a class="el" href="deprecated.html#_deprecated000001">Deprecated:</a></b></dt><dd>use ToNode. Return the handle as a <a class="el" href="classTiXmlNode.html" title="The parent class for everything in the Document Object Model.">TiXmlNode</a>. This may return null. </dd></dl>
-<dl class="deprecated"><dt><b><a class="el" href="deprecated.html#_deprecated000003">Deprecated:</a></b></dt><dd>use <a class="el" href="classTiXmlHandle.html#a4ac53a652296203a5b5e13854d923586" title="Return the handle as a TiXmlText.">ToText()</a> Return the handle as a <a class="el" href="classTiXmlText.html" title="XML text.">TiXmlText</a>. This may return null. </dd></dl>
-<p>Return the handle as a <a class="el" href="classTiXmlNode.html" title="The parent class for everything in the Document Object Model.">TiXmlNode</a>. </p>
-<p>This may return null. </p>
-
-<p>Referenced by <a class="el" href="tinyxml_8h_source.html#l01699">Node()</a>.</p>
-<p>Return the handle as a <a class="el" href="classTiXmlUnknown.html" title="Any tag that tinyXml doesn't recognize is saved as an unknown.">TiXmlUnknown</a>. </p>
-<p>This may return null. </p>
-
-<p>Referenced by <a class="el" href="tinyxml_8h_source.html#l01711">Unknown()</a>.</p>
-<dl class="deprecated"><dt><b><a class="el" href="deprecated.html#_deprecated000004">Deprecated:</a></b></dt><dd>use <a class="el" href="classTiXmlHandle.html#a1381c17507a130767b1e23afc93b3674" title="Return the handle as a TiXmlUnknown.">ToUnknown()</a> Return the handle as a <a class="el" href="classTiXmlUnknown.html" title="Any tag that tinyXml doesn't recognize is saved as an unknown.">TiXmlUnknown</a>. This may return null. </dd></dl>
-<h1>TiXmlNode Member List</h1>This is the complete list of members for <a class="el" href="classTiXmlNode.html">TiXmlNode</a>, including all inherited members.<table>
-<tr><td class="mdescLeft"> </td><td class="mdescRight">The meaning of 'value' changes for the specific type of <a class="el" href="classTiXmlNode.html" title="The parent class for everything in the Document Object Model.">TiXmlNode</a>. <a href="#a77943eb90d12c2892b1337a9f5918b41"></a><br/></td></tr>
-<tr><td class="mdescLeft"> </td><td class="mdescRight">Return <a class="el" href="classTiXmlNode.html#a77943eb90d12c2892b1337a9f5918b41" title="The meaning of 'value' changes for the specific type of TiXmlNode.">Value()</a> as a std::string. <a href="#a6d9e505619d39bf50bfd9609c9169ea5"></a><br/></td></tr>
-<tr><td class="mdescLeft"> </td><td class="mdescRight">Changes the value of the node. <a href="#a2a38329ca5d3f28f98ce932b8299ae90"></a><br/></td></tr>
-<tr><td class="mdescLeft"> </td><td class="mdescRight">The first child of this node with the matching 'value'. <a href="#a1f05828d023150706eeb16d6fb3f6355"></a><br/></td></tr>
-<tr><td class="mdescLeft"> </td><td class="mdescRight">The first child of this node with the matching 'value'. Will be null if none found. <br/></td></tr>
-<tr><td class="mdescLeft"> </td><td class="mdescRight">The last child of this node matching 'value'. Will be null if there are no children. <br/></td></tr>
-<tr><td class="mdescLeft"> </td><td class="mdescRight">An alternate way to walk the children of a node. <a href="#a8621196ba3705fa226bef4a761cc51b6"></a><br/></td></tr>
-<tr><td class="mdescLeft"> </td><td class="mdescRight">This flavor of IterateChildren searches for children with a particular 'value'. <br/></td></tr>
-<tr><td class="mdescLeft"> </td><td class="mdescRight">Add a new node related to this. <a href="#ad7d4630e1a2a916edda16be22448a8ba"></a><br/></td></tr>
-<tr><td class="mdescLeft"> </td><td class="mdescRight">Add a new node related to this. <a href="#a5d29442ae46de6d0168429156197bfc6"></a><br/></td></tr>
-<tr><td class="mdescLeft"> </td><td class="mdescRight">Add a new node related to this. <a href="#a0c146fa2fff0157b681594102f48cbc7"></a><br/></td></tr>
-<tr><td class="mdescLeft"> </td><td class="mdescRight">Add a new node related to this. <a href="#ad9b75e54ec19301c8b4d5ff583d0b3d5"></a><br/></td></tr>
-<tr><td class="mdescLeft"> </td><td class="mdescRight">Replace a child of this node. <a href="#a0c49e739a17b9938050c22cd89617fbd"></a><br/></td></tr>
-<tr><td class="mdescLeft"> </td><td class="mdescRight">Convenience function to get through elements. <a href="#a73acf929d49d10bd0e5fb3d31b0372d1"></a><br/></td></tr>
-<tr><td class="mdescLeft"> </td><td class="mdescRight">Convenience function to get through elements. <a href="#a071ba77fd7ab79402fa84b7e9b8607b3"></a><br/></td></tr>
-<tr><td class="mdescLeft"> </td><td class="mdescRight">Query the type (as an enumerated value, above) of this node. <a href="#a57b99d5c97d67a42b9752f5210a1ba5e"></a><br/></td></tr>
-<tr><td class="mdescLeft"> </td><td class="mdescRight">Return a pointer to the Document this node lives in. <a href="#a80e397fa973cf5323e33b07154b024f3"></a><br/></td></tr>
-<tr><td class="mdescLeft"> </td><td class="mdescRight">Cast to a more defined type. Will return null if not of the requested type. <br/></td></tr>
-<tr><td class="mdescLeft"> </td><td class="mdescRight">Cast to a more defined type. Will return null if not of the requested type. <br/></td></tr>
-<tr><td class="mdescLeft"> </td><td class="mdescRight">Cast to a more defined type. Will return null if not of the requested type. <br/></td></tr>
-<tr><td class="mdescLeft"> </td><td class="mdescRight">Cast to a more defined type. Will return null if not of the requested type. <br/></td></tr>
-<tr><td class="mdescLeft"> </td><td class="mdescRight">Cast to a more defined type. Will return null if not of the requested type. <br/></td></tr>
-<tr><td class="mdescLeft"> </td><td class="mdescRight">Cast to a more defined type. Will return null if not of the requested type. <br/></td></tr>
-<tr><td class="mdescLeft"> </td><td class="mdescRight">Cast to a more defined type. Will return null if not of the requested type. <br/></td></tr>
-<tr><td class="mdescLeft"> </td><td class="mdescRight">Cast to a more defined type. Will return null if not of the requested type. <br/></td></tr>
-<tr><td class="mdescLeft"> </td><td class="mdescRight">Cast to a more defined type. Will return null if not of the requested type. <br/></td></tr>
-<tr><td class="mdescLeft"> </td><td class="mdescRight">Cast to a more defined type. Will return null if not of the requested type. <br/></td></tr>
-<tr><td class="mdescLeft"> </td><td class="mdescRight">Cast to a more defined type. Will return null if not of the requested type. <br/></td></tr>
-<tr><td class="mdescLeft"> </td><td class="mdescRight">Cast to a more defined type. Will return null if not of the requested type. <br/></td></tr>
-<tr><td class="mdescLeft"> </td><td class="mdescRight">Create an exact duplicate of this node and return it. <a href="#a4508cc3a2d7a98e96a54cc09c37a78a4"></a><br/></td></tr>
-<tr><td class="mdescLeft"> </td><td class="mdescRight">Accept a hierchical visit the nodes in the TinyXML DOM. <a href="#acc0f88b7462c6cb73809d410a4f5bb86"></a><br/></td></tr>
-<p>The parent class for everything in the Document Object Model. </p>
-<p>(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 <a class="el" href="classTiXmlNode.html" title="The parent class for everything in the Document Object Model.">TiXmlNode</a> can be queried, and it can be cast to its more defined type. </p>
-<p>Accept a hierchical visit the nodes in the TinyXML DOM. </p>
-<p>Every node in the XML tree will be conditionally visited and the host will be called back via the <a class="el" href="classTiXmlVisitor.html" title="Implements the interface to the "Visitor pattern" (see the Accept() method...">TiXmlVisitor</a> interface.</p>
-<p>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.)</p>
-<p>The interface has been based on ideas from:</p>
-<p>Which are both good references for "visiting".</p>
-<p>An example of using <a class="el" href="classTiXmlNode.html#acc0f88b7462c6cb73809d410a4f5bb86" title="Accept a hierchical visit the nodes in the TinyXML DOM.">Accept()</a>: </p>
- </pre></div><p>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. </p>
-<p>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.</p>
-<dl class="see"><dt><b>See also:</b></dt><dd><a class="el" href="classTiXmlNode.html#ad7d4630e1a2a916edda16be22448a8ba" title="Add a new node related to this.">InsertEndChild</a> </dd></dl>
-<p>Referenced by <a class="el" href="tinyxml_8h_source.html#l01168">TiXmlComment::TiXmlComment()</a>, and <a class="el" href="tinyxml_8h_source.html#l01220">TiXmlText::TiXmlText()</a>.</p>
-<p>The meaning of 'value' changes for the specific type of <a class="el" href="classTiXmlNode.html" title="The parent class for everything in the Document Object Model.">TiXmlNode</a>. </p>
-<div class="fragment"><pre class="fragment">
- Document: filename of the xml file
- Element: name of the element
- Comment: the comment text
- Unknown: the tag contents
- Text: the text string
- </pre></div><p>The subclasses will wrap this function. </p>
-<p>Return <a class="el" href="classTiXmlNode.html#a77943eb90d12c2892b1337a9f5918b41" title="The meaning of 'value' changes for the specific type of TiXmlNode.">Value()</a> as a std::string. </p>
-<p>If you only use STL, this is more efficient than calling <a class="el" href="classTiXmlNode.html#a77943eb90d12c2892b1337a9f5918b41" title="The meaning of 'value' changes for the specific type of TiXmlNode.">Value()</a>. Only available in STL mode. </p>
-
-</div>
-</div>
-<hr/><h2>Friends And Related Function Documentation</h2>
-<p>An output stream operator, for every class. </p>
-<p>Note that this outputs without any newlines or formatting, as opposed to <a class="el" href="classTiXmlBase.html#a0de56b3f2ef14c65091a3b916437b512" title="All TinyXml classes can print themselves to a filestream or the string class (TiXmlString...">Print()</a>, which includes tabs and new lines.</p>
-<p>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.</p>
-<p>But reading is not as well defined. (As it always is.) If you create a <a class="el" href="classTiXmlElement.html" title="The element is a container class.">TiXmlElement</a> (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.</p>
-<p>A <a class="el" href="classTiXmlDocument.html" title="Always the top level node.">TiXmlDocument</a> will read nodes until it reads a root element, and all the children of that root element. </p>
-<h1>TiXmlPrinter Member List</h1>This is the complete list of members for <a class="el" href="classTiXmlPrinter.html">TiXmlPrinter</a>, including all inherited members.<table>
-<tr><td class="mdescLeft"> </td><td class="mdescRight">Set the indent characters for printing. <a href="#a213377a4070c7e625bae59716b089e5e"></a><br/></td></tr>
-<tr><td class="mdescLeft"> </td><td class="mdescRight">Set the line breaking string. <a href="#a4be1e37e69e3858c59635aa947174fe6"></a><br/></td></tr>
-<tr><td class="mdescLeft"> </td><td class="mdescRight">Switch over to "stream printing" which is the most dense formatting without linebreaks. <a href="#ab23a90629e374cb1cadca090468bbd19"></a><br/></td></tr>
-<p>The <a class="el" href="classTiXmlPrinter.html" title="Print to memory functionality.">TiXmlPrinter</a> is useful when you need to:</p>
-<ol type="1">
-<li>Print to memory (especially in non-STL mode)</li>
-<li>Control formatting (line endings, etc.)</li>
-</ol>
-<p>When constructed, the <a class="el" href="classTiXmlPrinter.html" title="Print to memory functionality.">TiXmlPrinter</a> is in its default "pretty printing" mode. Before calling Accept() you can call methods to control the printing of the XML document. After <a class="el" href="classTiXmlNode.html#acc0f88b7462c6cb73809d410a4f5bb86" title="Accept a hierchical visit the nodes in the TinyXML DOM.">TiXmlNode::Accept()</a> is called, the printed document can be accessed via the <a class="el" href="classTiXmlPrinter.html#a859eede9597d3e0355b77757be48735e" title="Return the result.">CStr()</a>, <a class="el" href="classTiXmlPrinter.html#a3bd4daf44309b41f5813a833caa0d1c9" title="Return the result.">Str()</a>, and <a class="el" href="classTiXmlPrinter.html#ad01375ae9199bd2f48252eaddce3039d" title="Return the length of the result string.">Size()</a> methods.</p>
-<p><a class="el" href="classTiXmlPrinter.html" title="Print to memory functionality.">TiXmlPrinter</a> uses the Visitor API. </p>
-<div class="fragment"><pre class="fragment">
- TiXmlPrinter printer;
- printer.SetIndent( "\t" );
-
- doc.Accept( &printer );
- fprintf( stdout, "%s", printer.CStr() );
- </pre></div> <hr/><h2>Member Function Documentation</h2>
-<h1>TiXmlText Member List</h1>This is the complete list of members for <a class="el" href="classTiXmlText.html">TiXmlText</a>, including all inherited members.<table>
-<tr><td class="mdescLeft"> </td><td class="mdescRight">Constructor for text element. <a href="#af659e77c6b87d684827f35a8f4895960"></a><br/></td></tr>
-<tr><td class="mdescLeft"> </td><td class="mdescRight">All TinyXml classes can print themselves to a filestream or the string class (TiXmlString in non-STL mode, std::string in STL mode. <a href="#a0cafbf6f236c7f02d12b2bffc2b7976b"></a><br/></td></tr>
-<p>A text node can have 2 ways to output the next. "normal" output and CDATA. It will default to the mode it was parsed from the XML file and you generally want to leave it alone, but you can change the output mode with <a class="el" href="classTiXmlText.html#acb17ff7c5d09b2c839393445a3de5ea9" title="Turns on or off a CDATA representation of text.">SetCDATA()</a> and query it with <a class="el" href="classTiXmlText.html#ad1a6a6b83fa2271022dd97c072a2b586" title="Queries whether this represents text using a CDATA section.">CDATA()</a>. </p>
-<hr/><h2>Constructor & Destructor Documentation</h2>
-<h1>TiXmlUnknown Member List</h1>This is the complete list of members for <a class="el" href="classTiXmlUnknown.html">TiXmlUnknown</a>, including all inherited members.<table>
-<tr><td class="mdescLeft"> </td><td class="mdescRight">All TinyXml classes can print themselves to a filestream or the string class (TiXmlString in non-STL mode, std::string in STL mode. <a href="#a31ba089a40fb5a1869750fce09b0bacb"></a><br/></td></tr>
-<h1>TiXmlVisitor Member List</h1>This is the complete list of members for <a class="el" href="classTiXmlVisitor.html">TiXmlVisitor</a>, including all inherited members.<table>
-<p>Implements the interface to the "Visitor pattern" (see the Accept() method. </p>
-<p>) If you call the Accept() method, it requires being passed a <a class="el" href="classTiXmlVisitor.html" title="Implements the interface to the "Visitor pattern" (see the Accept() method...">TiXmlVisitor</a> class to handle callbacks. For nodes that contain other nodes (Document, Element) you will get called with a VisitEnter/VisitExit pair. Nodes that are always leaves are simply called with <a class="el" href="classTiXmlVisitor.html#afad71c71ce6473fb9b4b64cd92de4a19" title="Visit a declaration.">Visit()</a>.</p>
-<p>If you return 'true' from a Visit method, recursive parsing will continue. If you return false, <b>no children of this node or its sibilings</b> will be Visited.</p>
-<p>All flavors of Visit methods have a default implementation that returns 'true' (continue visiting). You need to only override methods that are interesting to you.</p>
-<p>Generally Accept() is called on the <a class="el" href="classTiXmlDocument.html" title="Always the top level node.">TiXmlDocument</a>, although all nodes suppert Visiting.</p>
-<p>You should never change the document from a callback.</p>
-<dl class="see"><dt><b>See also:</b></dt><dd><a class="el" href="classTiXmlNode.html#acc0f88b7462c6cb73809d410a4f5bb86" title="Accept a hierchical visit the nodes in the TinyXML DOM.">TiXmlNode::Accept()</a> </dd></dl>
-<hr/>The documentation for this class was generated from the following file:<ul>
+Generated on Sun Jun 6 2021 17:10:05 for TinyXML-2 by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.1
+<div class="title">tinyxml2::XMLAttribute Member List</div> </div>
+</div><!--header-->
+<div class="contents">
+
+<p>This is the complete list of members for <a class="el" href="classtinyxml2_1_1_x_m_l_attribute.html">tinyxml2::XMLAttribute</a>, including all inherited members.</p>
+Generated on Sun Jun 6 2021 17:10:05 for TinyXML-2 by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.1
+<tr class="memdesc:ab886c486ec19f02ed826f8dc129e5ad8"><td class="mdescLeft"> </td><td class="mdescRight">The name of the attribute. <br /></td></tr>
+<tr class="memdesc:a1aab1dd0e43ecbcfa306adbcf3a3d853"><td class="mdescLeft"> </td><td class="mdescRight">The value of the attribute. <br /></td></tr>
+<tr class="memdesc:a02d5ea924586e35f9c13857d1671b765"><td class="mdescLeft"> </td><td class="mdescRight">Gets the line number the attribute is in, if the document was parsed from a file. <br /></td></tr>
+<tr class="memdesc:aee53571b21e7ce5421eb929523a8bbe6"><td class="mdescLeft"> </td><td class="mdescRight">The next attribute in the list. <br /></td></tr>
+<tr class="memdesc:a0be5343b08a957c42c02c5d32c35d338"><td class="mdescLeft"> </td><td class="mdescRight">Query as an unsigned integer. See <a class="el" href="classtinyxml2_1_1_x_m_l_attribute.html#adfa2433f0fdafd5c3880936de9affa80">IntValue()</a> <br /></td></tr>
+<tr class="memdesc:a98ce5207344ad33a265b0422addae1ff"><td class="mdescLeft"> </td><td class="mdescRight">Query as a boolean. See <a class="el" href="classtinyxml2_1_1_x_m_l_attribute.html#adfa2433f0fdafd5c3880936de9affa80">IntValue()</a> <br /></td></tr>
+<tr class="memdesc:a4aa73513f54ff0087d3e804f0f54e30f"><td class="mdescLeft"> </td><td class="mdescRight">Query as a double. See <a class="el" href="classtinyxml2_1_1_x_m_l_attribute.html#adfa2433f0fdafd5c3880936de9affa80">IntValue()</a> <br /></td></tr>
+<tr class="memdesc:a27797b45d21c981257720db94f5f8801"><td class="mdescLeft"> </td><td class="mdescRight">Query as a float. See <a class="el" href="classtinyxml2_1_1_x_m_l_attribute.html#adfa2433f0fdafd5c3880936de9affa80">IntValue()</a> <br /></td></tr>
+<tr class="memdesc:a406d2c4a13c7af99a65edb59dd9f7581"><td class="mdescLeft"> </td><td class="mdescRight">Set the attribute to a string value. <br /></td></tr>
+<tr class="memdesc:ad86d7d7058d76761c3a80662566a57e5"><td class="mdescLeft"> </td><td class="mdescRight">Set the attribute to value. <br /></td></tr>
+<tr class="memdesc:ae70468c0f6df2748ba3529c716999fae"><td class="mdescLeft"> </td><td class="mdescRight">Set the attribute to value. <br /></td></tr>
+<tr class="memdesc:a7c1240f479722b9aa29b6c030aa116c2"><td class="mdescLeft"> </td><td class="mdescRight">Set the attribute to value. <br /></td></tr>
+<tr class="memdesc:a10964060a5c0d92486ecf8705bdf37da"><td class="mdescLeft"> </td><td class="mdescRight">Set the attribute to value. <br /></td></tr>
+<tr class="memdesc:ab3516def4fe058fe328f2b89fc2d77da"><td class="mdescLeft"> </td><td class="mdescRight">Set the attribute to value. <br /></td></tr>
+<tr class="memdesc:a9a65ab3147abe8ccbbd373ce8791e818"><td class="mdescLeft"> </td><td class="mdescRight">Set the attribute to value. <br /></td></tr>
+<tr class="memdesc:ae95e843313aaf5d56c32530b6456df02"><td class="mdescLeft"> </td><td class="mdescRight">Set the attribute to value. <br /></td></tr>
+<div class="textblock"><p>An attribute is a name-value pair. Elements have an arbitrary number of attributes, each with a unique name.</p>
+<dl class="section note"><dt>Note</dt><dd>The attributes are not XMLNodes. You may only query the <a class="el" href="classtinyxml2_1_1_x_m_l_attribute.html#aee53571b21e7ce5421eb929523a8bbe6" title="The next attribute in the list.">Next()</a> attribute in a list. </dd></dl>
+</div><h2 class="groupheader">Member Function Documentation</h2>
+<p>IntValue interprets the attribute as an integer, and returns the value. If the value isn't an integer, 0 will be returned. There is no error checking; use <a class="el" href="classtinyxml2_1_1_x_m_l_attribute.html#a6d5176260db00ea301c01af8457cd993">QueryIntValue()</a> if you need error checking. </p>
+<p>QueryIntValue interprets the attribute as an integer, and returns the value in the provided parameter. The function will return XML_SUCCESS on success, and XML_WRONG_ATTRIBUTE_TYPE if the conversion is not successful. </p>
+
+</div>
+</div>
+<hr/>The documentation for this class was generated from the following file:<ul>
+Generated on Sun Jun 6 2021 17:10:05 for TinyXML-2 by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.1
+<div class="title">tinyxml2::XMLComment Member List</div> </div>
+</div><!--header-->
+<div class="contents">
+
+<p>This is the complete list of members for <a class="el" href="classtinyxml2_1_1_x_m_l_comment.html">tinyxml2::XMLComment</a>, including all inherited members.</p>
+Generated on Sun Jun 6 2021 17:10:05 for TinyXML-2 by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.1
+<tr class="memdesc:a8093e1dc8a34fa446d9dc3fde0e6c0ee"><td class="mdescLeft"> </td><td class="mdescRight">Safely cast to a Comment, or null. <br /></td></tr>
+<tr class="memdesc:aab516e699567f75cc9ab2ef2eee501e8 inherit pub_methods_classtinyxml2_1_1_x_m_l_node"><td class="mdescLeft"> </td><td class="mdescRight">Safely cast to an Element, or null. <br /></td></tr>
+<tr class="memdesc:a836e2966ed736fc3c94f70e12a2a3357 inherit pub_methods_classtinyxml2_1_1_x_m_l_node"><td class="mdescLeft"> </td><td class="mdescRight">Safely cast to a Document, or null. <br /></td></tr>
+<tr class="memdesc:a174fd4c22c010b58138c1b84a0dfbd51 inherit pub_methods_classtinyxml2_1_1_x_m_l_node"><td class="mdescLeft"> </td><td class="mdescRight">Safely cast to a Declaration, or null. <br /></td></tr>
+<tr class="memdesc:a8675a74aa0ada6eccab0c77ef3e5b9bd inherit pub_methods_classtinyxml2_1_1_x_m_l_node"><td class="mdescLeft"> </td><td class="mdescRight">Safely cast to an Unknown, or null. <br /></td></tr>
+<tr class="memdesc:a9b5fc636646fda761d342c72e91cb286 inherit pub_methods_classtinyxml2_1_1_x_m_l_node"><td class="mdescLeft"> </td><td class="mdescRight">Gets the line number the node is in, if the document was parsed from a file. <br /></td></tr>
+<tr class="memdesc:ae0f62bc186c56c2e0483ebd52dbfbe34 inherit pub_methods_classtinyxml2_1_1_x_m_l_node"><td class="mdescLeft"> </td><td class="mdescRight">Get the parent of this node on the DOM. <br /></td></tr>
+<tr class="memdesc:ac3ab489e6e202a3cd1762d3b332e89d4 inherit pub_methods_classtinyxml2_1_1_x_m_l_node"><td class="mdescLeft"> </td><td class="mdescRight">Returns true if this node has no children. <br /></td></tr>
+<tr class="memdesc:ae7dc225e1018cdd685f7563593a1fe08 inherit pub_methods_classtinyxml2_1_1_x_m_l_node"><td class="mdescLeft"> </td><td class="mdescRight">Get the first child node, or null if none exists. <br /></td></tr>
+<tr class="memdesc:a9b8583a277e8e26f4cbbb5492786778e inherit pub_methods_classtinyxml2_1_1_x_m_l_node"><td class="mdescLeft"> </td><td class="mdescRight">Get the last child node, or null if none exists. <br /></td></tr>
+<tr class="memdesc:a872936cae46fb473eb47fec99129fc70 inherit pub_methods_classtinyxml2_1_1_x_m_l_node"><td class="mdescLeft"> </td><td class="mdescRight">Get the previous (left) sibling element of this node, with an optionally supplied name. <br /></td></tr>
+<tr class="memdesc:a79db9ef0fe014d27790f2218b87bcbb5 inherit pub_methods_classtinyxml2_1_1_x_m_l_node"><td class="mdescLeft"> </td><td class="mdescRight">Get the next (right) sibling node of this node. <br /></td></tr>
+<tr class="memdesc:a1264c86233328f0cd36297552d982f80 inherit pub_methods_classtinyxml2_1_1_x_m_l_node"><td class="mdescLeft"> </td><td class="mdescRight">Get the next (right) sibling element of this node, with an optionally supplied name. <br /></td></tr>
+<p>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 <a class="el" href="classtinyxml2_1_1_x_m_l_visitor.html">XMLVisitor</a> interface.</p>
+<p>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.)</p>
+<p>The interface has been based on ideas from:</p>
+<p>Which are both good references for "visiting".</p>
+<p>An example of using <a class="el" href="classtinyxml2_1_1_x_m_l_comment.html#a4a33dc32fae0285b03f9cfcb3e43e122">Accept()</a>: </p><pre class="fragment">XMLPrinter printer;
+<p>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-><a class="el" href="classtinyxml2_1_1_x_m_l_node.html#af343d1ef0b45c0020e62d784d7e67a68" title="Get the XMLDocument that owns this XMLNode.">GetDocument()</a>)</p>
+<p>Note: if called on a <a class="el" href="classtinyxml2_1_1_x_m_l_document.html">XMLDocument</a>, this will return null. </p>
+Generated on Sun Jun 6 2021 17:10:05 for TinyXML-2 by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.1
+<div class="title">tinyxml2::XMLConstHandle Member List</div> </div>
+</div><!--header-->
+<div class="contents">
+
+<p>This is the complete list of members for <a class="el" href="classtinyxml2_1_1_x_m_l_const_handle.html">tinyxml2::XMLConstHandle</a>, including all inherited members.</p>
+Generated on Sun Jun 6 2021 17:10:05 for TinyXML-2 by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.1
+<div class="textblock"><p>A variant of the <a class="el" href="classtinyxml2_1_1_x_m_l_handle.html">XMLHandle</a> class for working with const XMLNodes and Documents. It is the same in all regards, except for the 'const' qualifiers. See <a class="el" href="classtinyxml2_1_1_x_m_l_handle.html">XMLHandle</a> for API. </p>
+</div><hr/>The documentation for this class was generated from the following file:<ul>
+Generated on Sun Jun 6 2021 17:10:05 for TinyXML-2 by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.1
+<div class="title">tinyxml2::XMLDeclaration Member List</div> </div>
+</div><!--header-->
+<div class="contents">
+
+<p>This is the complete list of members for <a class="el" href="classtinyxml2_1_1_x_m_l_declaration.html">tinyxml2::XMLDeclaration</a>, including all inherited members.</p>
+Generated on Sun Jun 6 2021 17:10:05 for TinyXML-2 by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.1
+<tr class="memdesc:a159d8ac45865215e88059ea1e5b52fc5"><td class="mdescLeft"> </td><td class="mdescRight">Safely cast to a Declaration, or null. <br /></td></tr>
+<tr class="memdesc:aab516e699567f75cc9ab2ef2eee501e8 inherit pub_methods_classtinyxml2_1_1_x_m_l_node"><td class="mdescLeft"> </td><td class="mdescRight">Safely cast to an Element, or null. <br /></td></tr>
+<tr class="memdesc:aff47671055aa99840a1c1ebd661e63e3 inherit pub_methods_classtinyxml2_1_1_x_m_l_node"><td class="mdescLeft"> </td><td class="mdescRight">Safely cast to a Comment, or null. <br /></td></tr>
+<tr class="memdesc:a836e2966ed736fc3c94f70e12a2a3357 inherit pub_methods_classtinyxml2_1_1_x_m_l_node"><td class="mdescLeft"> </td><td class="mdescRight">Safely cast to a Document, or null. <br /></td></tr>
+<tr class="memdesc:a8675a74aa0ada6eccab0c77ef3e5b9bd inherit pub_methods_classtinyxml2_1_1_x_m_l_node"><td class="mdescLeft"> </td><td class="mdescRight">Safely cast to an Unknown, or null. <br /></td></tr>
+<tr class="memdesc:a9b5fc636646fda761d342c72e91cb286 inherit pub_methods_classtinyxml2_1_1_x_m_l_node"><td class="mdescLeft"> </td><td class="mdescRight">Gets the line number the node is in, if the document was parsed from a file. <br /></td></tr>
+<tr class="memdesc:ae0f62bc186c56c2e0483ebd52dbfbe34 inherit pub_methods_classtinyxml2_1_1_x_m_l_node"><td class="mdescLeft"> </td><td class="mdescRight">Get the parent of this node on the DOM. <br /></td></tr>
+<tr class="memdesc:ac3ab489e6e202a3cd1762d3b332e89d4 inherit pub_methods_classtinyxml2_1_1_x_m_l_node"><td class="mdescLeft"> </td><td class="mdescRight">Returns true if this node has no children. <br /></td></tr>
+<tr class="memdesc:ae7dc225e1018cdd685f7563593a1fe08 inherit pub_methods_classtinyxml2_1_1_x_m_l_node"><td class="mdescLeft"> </td><td class="mdescRight">Get the first child node, or null if none exists. <br /></td></tr>
+<tr class="memdesc:a9b8583a277e8e26f4cbbb5492786778e inherit pub_methods_classtinyxml2_1_1_x_m_l_node"><td class="mdescLeft"> </td><td class="mdescRight">Get the last child node, or null if none exists. <br /></td></tr>
+<tr class="memdesc:a872936cae46fb473eb47fec99129fc70 inherit pub_methods_classtinyxml2_1_1_x_m_l_node"><td class="mdescLeft"> </td><td class="mdescRight">Get the previous (left) sibling element of this node, with an optionally supplied name. <br /></td></tr>
+<tr class="memdesc:a79db9ef0fe014d27790f2218b87bcbb5 inherit pub_methods_classtinyxml2_1_1_x_m_l_node"><td class="mdescLeft"> </td><td class="mdescRight">Get the next (right) sibling node of this node. <br /></td></tr>
+<tr class="memdesc:a1264c86233328f0cd36297552d982f80 inherit pub_methods_classtinyxml2_1_1_x_m_l_node"><td class="mdescLeft"> </td><td class="mdescRight">Get the next (right) sibling element of this node, with an optionally supplied name. <br /></td></tr>
+<div class="textblock"><p>In correct XML the declaration is the first entry in the file. </p><pre class="fragment"> <?xml version="1.0" standalone="yes"?>
+</pre><p>TinyXML-2 will happily read or write files without a declaration, however.</p>
+<p>The text of the declaration isn't interpreted. It is parsed and written as a string. </p>
+</div><h2 class="groupheader">Member Function Documentation</h2>
+<p>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 <a class="el" href="classtinyxml2_1_1_x_m_l_visitor.html">XMLVisitor</a> interface.</p>
+<p>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.)</p>
+<p>The interface has been based on ideas from:</p>
+<p>Which are both good references for "visiting".</p>
+<p>An example of using <a class="el" href="classtinyxml2_1_1_x_m_l_declaration.html#a5f376019fb34752eb248548f42f32045">Accept()</a>: </p><pre class="fragment">XMLPrinter printer;
+<p>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-><a class="el" href="classtinyxml2_1_1_x_m_l_node.html#af343d1ef0b45c0020e62d784d7e67a68" title="Get the XMLDocument that owns this XMLNode.">GetDocument()</a>)</p>
+<p>Note: if called on a <a class="el" href="classtinyxml2_1_1_x_m_l_document.html">XMLDocument</a>, this will return null. </p>
+Generated on Sun Jun 6 2021 17:10:05 for TinyXML-2 by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.1
+<div class="title">tinyxml2::XMLDocument Member List</div> </div>
+</div><!--header-->
+<div class="contents">
+
+<p>This is the complete list of members for <a class="el" href="classtinyxml2_1_1_x_m_l_document.html">tinyxml2::XMLDocument</a>, including all inherited members.</p>
+Generated on Sun Jun 6 2021 17:10:05 for TinyXML-2 by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.1
+<tr class="memdesc:a3e185f880882bd978367bb55937735ec"><td class="mdescLeft"> </td><td class="mdescRight">Safely cast to a Document, or null. <br /></td></tr>
+<tr class="memdesc:a34e6318e182e40e3cc4f4ba5d59ed9ed"><td class="mdescLeft"> </td><td class="mdescRight">Return true if there was an error parsing the document. <br /></td></tr>
+<tr class="memdesc:a1d033945b42e125d933d6231e4571552"><td class="mdescLeft"> </td><td class="mdescRight">A (trivial) utility function that prints the <a class="el" href="classtinyxml2_1_1_x_m_l_document.html#ad75aa9d32c4e8b300655186808aa9abf">ErrorStr()</a> to stdout. <br /></td></tr>
+<tr class="memdesc:a57400f816dbe7799ece33615ead9ab76"><td class="mdescLeft"> </td><td class="mdescRight">Return the line where the error occurred, or zero if unknown. <br /></td></tr>
+<tr class="memdesc:a65656b0b2cbc822708eb351504178aaf"><td class="mdescLeft"> </td><td class="mdescRight">Clear the document, resetting it to the initial state. <br /></td></tr>
+<tr class="memdesc:aab516e699567f75cc9ab2ef2eee501e8 inherit pub_methods_classtinyxml2_1_1_x_m_l_node"><td class="mdescLeft"> </td><td class="mdescRight">Safely cast to an Element, or null. <br /></td></tr>
+<tr class="memdesc:aff47671055aa99840a1c1ebd661e63e3 inherit pub_methods_classtinyxml2_1_1_x_m_l_node"><td class="mdescLeft"> </td><td class="mdescRight">Safely cast to a Comment, or null. <br /></td></tr>
+<tr class="memdesc:a174fd4c22c010b58138c1b84a0dfbd51 inherit pub_methods_classtinyxml2_1_1_x_m_l_node"><td class="mdescLeft"> </td><td class="mdescRight">Safely cast to a Declaration, or null. <br /></td></tr>
+<tr class="memdesc:a8675a74aa0ada6eccab0c77ef3e5b9bd inherit pub_methods_classtinyxml2_1_1_x_m_l_node"><td class="mdescLeft"> </td><td class="mdescRight">Safely cast to an Unknown, or null. <br /></td></tr>
+<tr class="memdesc:a9b5fc636646fda761d342c72e91cb286 inherit pub_methods_classtinyxml2_1_1_x_m_l_node"><td class="mdescLeft"> </td><td class="mdescRight">Gets the line number the node is in, if the document was parsed from a file. <br /></td></tr>
+<tr class="memdesc:ae0f62bc186c56c2e0483ebd52dbfbe34 inherit pub_methods_classtinyxml2_1_1_x_m_l_node"><td class="mdescLeft"> </td><td class="mdescRight">Get the parent of this node on the DOM. <br /></td></tr>
+<tr class="memdesc:ac3ab489e6e202a3cd1762d3b332e89d4 inherit pub_methods_classtinyxml2_1_1_x_m_l_node"><td class="mdescLeft"> </td><td class="mdescRight">Returns true if this node has no children. <br /></td></tr>
+<tr class="memdesc:ae7dc225e1018cdd685f7563593a1fe08 inherit pub_methods_classtinyxml2_1_1_x_m_l_node"><td class="mdescLeft"> </td><td class="mdescRight">Get the first child node, or null if none exists. <br /></td></tr>
+<tr class="memdesc:a9b8583a277e8e26f4cbbb5492786778e inherit pub_methods_classtinyxml2_1_1_x_m_l_node"><td class="mdescLeft"> </td><td class="mdescRight">Get the last child node, or null if none exists. <br /></td></tr>
+<tr class="memdesc:a872936cae46fb473eb47fec99129fc70 inherit pub_methods_classtinyxml2_1_1_x_m_l_node"><td class="mdescLeft"> </td><td class="mdescRight">Get the previous (left) sibling element of this node, with an optionally supplied name. <br /></td></tr>
+<tr class="memdesc:a79db9ef0fe014d27790f2218b87bcbb5 inherit pub_methods_classtinyxml2_1_1_x_m_l_node"><td class="mdescLeft"> </td><td class="mdescRight">Get the next (right) sibling node of this node. <br /></td></tr>
+<tr class="memdesc:a1264c86233328f0cd36297552d982f80 inherit pub_methods_classtinyxml2_1_1_x_m_l_node"><td class="mdescLeft"> </td><td class="mdescRight">Get the next (right) sibling element of this node, with an optionally supplied name. <br /></td></tr>
+<div class="textblock"><p>A Document binds together all the functionality. It can be saved, loaded, and printed to the screen. All Nodes are connected and allocated to a Document. If the Document is deleted, all its Nodes are also deleted. </p>
+</div><h2 class="groupheader">Member Function Documentation</h2>
+<p>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 <a class="el" href="classtinyxml2_1_1_x_m_l_visitor.html">XMLVisitor</a> interface.</p>
+<p>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.)</p>
+<p>The interface has been based on ideas from:</p>
+<p>Which are both good references for "visiting".</p>
+<p>An example of using <a class="el" href="classtinyxml2_1_1_x_m_l_document.html#a9efa54f7ecb37c17ab1fa2b3078ccca1">Accept()</a>: </p><pre class="fragment">XMLPrinter printer;
+<p>Copies this document to a target document. The target will be completely cleared before the copy. If you want to copy a sub-tree, see <a class="el" href="classtinyxml2_1_1_x_m_l_node.html#a62c71b6bf8734b5424063b8d9a61c266">XMLNode::DeepClone()</a>.</p>
+<p>NOTE: that the 'target' must be non-null. </p>
+<p>Parse an XML file from a character string. Returns XML_SUCCESS (0) on success, or an errorID.</p>
+<p>You may optionally pass in the 'nBytes', which is the number of bytes which will be parsed. If not specified, TinyXML-2 will assume 'xml' points to a null terminated string. </p>
+<p>Print the Document. If the Printer is not provided, it will print to stdout. If you provide Printer, this can print to a file: </p><pre class="fragment">XMLPrinter printer( fp );
+doc.Print( &printer );
+</pre><p>Or you can use a printer to print to memory: </p><pre class="fragment">XMLPrinter printer;
+<p>Return the root element of DOM. Equivalent to <a class="el" href="classtinyxml2_1_1_x_m_l_node.html#a1795a35852dc8aae877cc8ded986e59b">FirstChildElement()</a>. To get the first node, use FirstChild(). </p>
+<p>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-><a class="el" href="classtinyxml2_1_1_x_m_l_node.html#af343d1ef0b45c0020e62d784d7e67a68" title="Get the XMLDocument that owns this XMLNode.">GetDocument()</a>)</p>
+<p>Note: if called on a <a class="el" href="classtinyxml2_1_1_x_m_l_document.html">XMLDocument</a>, this will return null. </p>
+Generated on Sun Jun 6 2021 17:10:05 for TinyXML-2 by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.1
+<div class="title">tinyxml2::XMLElement Member List</div> </div>
+</div><!--header-->
+<div class="contents">
+
+<p>This is the complete list of members for <a class="el" href="classtinyxml2_1_1_x_m_l_element.html">tinyxml2::XMLElement</a>, including all inherited members.</p>
+Generated on Sun Jun 6 2021 17:10:05 for TinyXML-2 by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.1
+<tr class="memdesc:a63e057fb5baee1dd29f323cb85907b35"><td class="mdescLeft"> </td><td class="mdescRight">Get the name of an element (which is the <a class="el" href="classtinyxml2_1_1_x_m_l_node.html#a66344989a4b436155bcda72bd6b07b82">Value()</a> of the node.) <br /></td></tr>
+<tr class="memdesc:a97712009a530d8cb8a63bf705f02b4f1"><td class="mdescLeft"> </td><td class="mdescRight">Set the name of the element. <br /></td></tr>
+<tr class="memdesc:ad9ff5c2dbc15df36cf664ce1b0ea0a5d"><td class="mdescLeft"> </td><td class="mdescRight">Safely cast to an Element, or null. <br /></td></tr>
+<tr class="memdesc:a11943abf2d0831548c3790dd5d9f119c"><td class="mdescLeft"> </td><td class="mdescRight">Sets the named attribute to value. <br /></td></tr>
+void </td><td class="memItemRight" valign="bottom"><a class="el" href="classtinyxml2_1_1_x_m_l_element.html#aae6568c64c7f1cc88be8461ba41a79cf">SetAttribute</a> (const char *name, int value)</td></tr>
+<tr class="memdesc:aae6568c64c7f1cc88be8461ba41a79cf"><td class="mdescLeft"> </td><td class="mdescRight">Sets the named attribute to value. <br /></td></tr>
+<tr class="memdesc:ae143997e90064ba82326b29a9930ea8f"><td class="mdescLeft"> </td><td class="mdescRight">Sets the named attribute to value. <br /></td></tr>
+<tr class="memdesc:aaeefdf9171fec91b13a776b42299b0dd"><td class="mdescLeft"> </td><td class="mdescRight">Sets the named attribute to value. <br /></td></tr>
+<tr class="memdesc:ad598868c0599ddc4695dab18552c308d"><td class="mdescLeft"> </td><td class="mdescRight">Sets the named attribute to value. <br /></td></tr>
+<tr class="memdesc:aa848b696e6a75e4e545c6da9893b11e1"><td class="mdescLeft"> </td><td class="mdescRight">Sets the named attribute to value. <br /></td></tr>
+<tr class="memdesc:a233397ee81e70eb5d4b814c5f8698533"><td class="mdescLeft"> </td><td class="mdescRight">Sets the named attribute to value. <br /></td></tr>
+<tr class="memdesc:a554b70d882e65b28fc084b23df9b9759"><td class="mdescLeft"> </td><td class="mdescRight">Sets the named attribute to value. <br /></td></tr>
+<tr class="memdesc:a3e191704c8d499906ec11fe2f60c6686"><td class="mdescLeft"> </td><td class="mdescRight">Return the first attribute in the list. <br /></td></tr>
+<tr class="memdesc:a2dcd4d5d6fb63396cd2f257c318b42c4"><td class="mdescLeft"> </td><td class="mdescRight">Query a specific attribute in the list. <br /></td></tr>
+<tr class="memdesc:aeae8917b5ea6060b3c08d4e3d8d632d7"><td class="mdescLeft"> </td><td class="mdescRight">Convenience method for setting text inside an element. See <a class="el" href="classtinyxml2_1_1_x_m_l_element.html#a1f9c2cd61b72af5ae708d37b7ad283ce">SetText()</a> for important limitations. <br /></td></tr>
+<tr class="memdesc:a7bbfcc11d516598bc924a8fba4d08597"><td class="mdescLeft"> </td><td class="mdescRight">Convenience method for setting text inside an element. See <a class="el" href="classtinyxml2_1_1_x_m_l_element.html#a1f9c2cd61b72af5ae708d37b7ad283ce">SetText()</a> for important limitations. <br /></td></tr>
+<tr class="memdesc:a7b62cd33acdfeff7ea2b1b330d4368e4"><td class="mdescLeft"> </td><td class="mdescRight">Convenience method for setting text inside an element. See <a class="el" href="classtinyxml2_1_1_x_m_l_element.html#a1f9c2cd61b72af5ae708d37b7ad283ce">SetText()</a> for important limitations. <br /></td></tr>
+<tr class="memdesc:a6e615bc745afd1ca8ded56d7aac02657"><td class="mdescLeft"> </td><td class="mdescRight">Convenience method for setting text inside an element. See <a class="el" href="classtinyxml2_1_1_x_m_l_element.html#a1f9c2cd61b72af5ae708d37b7ad283ce">SetText()</a> for important limitations. <br /></td></tr>
+<tr class="memdesc:ae4b543d6770de76fb6ab68e541c192a4"><td class="mdescLeft"> </td><td class="mdescRight">Convenience method for setting text inside an element. See <a class="el" href="classtinyxml2_1_1_x_m_l_element.html#a1f9c2cd61b72af5ae708d37b7ad283ce">SetText()</a> for important limitations. <br /></td></tr>
+<tr class="memdesc:a67bd77ac9aaeff58ff20b4275a65ba4e"><td class="mdescLeft"> </td><td class="mdescRight">Convenience method for setting text inside an element. See <a class="el" href="classtinyxml2_1_1_x_m_l_element.html#a1f9c2cd61b72af5ae708d37b7ad283ce">SetText()</a> for important limitations. <br /></td></tr>
+<tr class="memdesc:a51d560da5ae3ad6b75e0ab9ffb2ae42a"><td class="mdescLeft"> </td><td class="mdescRight">Convenience method for setting text inside an element. See <a class="el" href="classtinyxml2_1_1_x_m_l_element.html#a1f9c2cd61b72af5ae708d37b7ad283ce">SetText()</a> for important limitations. <br /></td></tr>
+<tr class="memdesc:aff47671055aa99840a1c1ebd661e63e3 inherit pub_methods_classtinyxml2_1_1_x_m_l_node"><td class="mdescLeft"> </td><td class="mdescRight">Safely cast to a Comment, or null. <br /></td></tr>
+<tr class="memdesc:a836e2966ed736fc3c94f70e12a2a3357 inherit pub_methods_classtinyxml2_1_1_x_m_l_node"><td class="mdescLeft"> </td><td class="mdescRight">Safely cast to a Document, or null. <br /></td></tr>
+<tr class="memdesc:a174fd4c22c010b58138c1b84a0dfbd51 inherit pub_methods_classtinyxml2_1_1_x_m_l_node"><td class="mdescLeft"> </td><td class="mdescRight">Safely cast to a Declaration, or null. <br /></td></tr>
+<tr class="memdesc:a8675a74aa0ada6eccab0c77ef3e5b9bd inherit pub_methods_classtinyxml2_1_1_x_m_l_node"><td class="mdescLeft"> </td><td class="mdescRight">Safely cast to an Unknown, or null. <br /></td></tr>
+<tr class="memdesc:a9b5fc636646fda761d342c72e91cb286 inherit pub_methods_classtinyxml2_1_1_x_m_l_node"><td class="mdescLeft"> </td><td class="mdescRight">Gets the line number the node is in, if the document was parsed from a file. <br /></td></tr>
+<tr class="memdesc:ae0f62bc186c56c2e0483ebd52dbfbe34 inherit pub_methods_classtinyxml2_1_1_x_m_l_node"><td class="mdescLeft"> </td><td class="mdescRight">Get the parent of this node on the DOM. <br /></td></tr>
+<tr class="memdesc:ac3ab489e6e202a3cd1762d3b332e89d4 inherit pub_methods_classtinyxml2_1_1_x_m_l_node"><td class="mdescLeft"> </td><td class="mdescRight">Returns true if this node has no children. <br /></td></tr>
+<tr class="memdesc:ae7dc225e1018cdd685f7563593a1fe08 inherit pub_methods_classtinyxml2_1_1_x_m_l_node"><td class="mdescLeft"> </td><td class="mdescRight">Get the first child node, or null if none exists. <br /></td></tr>
+<tr class="memdesc:a9b8583a277e8e26f4cbbb5492786778e inherit pub_methods_classtinyxml2_1_1_x_m_l_node"><td class="mdescLeft"> </td><td class="mdescRight">Get the last child node, or null if none exists. <br /></td></tr>
+<tr class="memdesc:a872936cae46fb473eb47fec99129fc70 inherit pub_methods_classtinyxml2_1_1_x_m_l_node"><td class="mdescLeft"> </td><td class="mdescRight">Get the previous (left) sibling element of this node, with an optionally supplied name. <br /></td></tr>
+<tr class="memdesc:a79db9ef0fe014d27790f2218b87bcbb5 inherit pub_methods_classtinyxml2_1_1_x_m_l_node"><td class="mdescLeft"> </td><td class="mdescRight">Get the next (right) sibling node of this node. <br /></td></tr>
+<tr class="memdesc:a1264c86233328f0cd36297552d982f80 inherit pub_methods_classtinyxml2_1_1_x_m_l_node"><td class="mdescLeft"> </td><td class="mdescRight">Get the next (right) sibling element of this node, with an optionally supplied name. <br /></td></tr>
+<div class="textblock"><p>The element is a container class. It has a value, the element name, and can contain other elements, text, comments, and unknowns. Elements also contain an arbitrary number of attributes. </p>
+</div><h2 class="groupheader">Member Function Documentation</h2>
+<p>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 <a class="el" href="classtinyxml2_1_1_x_m_l_visitor.html">XMLVisitor</a> interface.</p>
+<p>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.)</p>
+<p>The interface has been based on ideas from:</p>
+<p>Which are both good references for "visiting".</p>
+<p>An example of using <a class="el" href="classtinyxml2_1_1_x_m_l_element.html#a3ea8a40e788fb9ad876c28a32932c6d5">Accept()</a>: </p><pre class="fragment">XMLPrinter printer;
+<p>Given an attribute name, <a class="el" href="classtinyxml2_1_1_x_m_l_element.html#a70e49ed60b11212ae35f7e354cfe1de9">Attribute()</a> returns the value for the attribute of that name, or null if none exists. For example:</p>
+<pre class="fragment">const char* value = ele->Attribute( "foo" );
+</pre><p>The 'value' parameter is normally null. However, if specified, the attribute will only be returned if the 'name' and 'value' match. This allow you to write code:</p>
+<p>Convenience function for easy access to the text inside an element. Although easy and concise, <a class="el" href="classtinyxml2_1_1_x_m_l_element.html#a6d5c8d115561ade4e4456b71d91b6f51">GetText()</a> is limited compared to getting the <a class="el" href="classtinyxml2_1_1_x_m_l_text.html">XMLText</a> child and accessing it directly.</p>
+<p>If the first child of 'this' is a <a class="el" href="classtinyxml2_1_1_x_m_l_text.html">XMLText</a>, the <a class="el" href="classtinyxml2_1_1_x_m_l_element.html#a6d5c8d115561ade4e4456b71d91b6f51">GetText()</a> returns the character string of the Text node, else null is returned.</p>
+<p>This is a convenient method for getting the text of simple contained text: </p><pre class="fragment"><foo>This is text</foo>
+ const char* str = fooElement->GetText();
+</pre><p>'str' will be a pointer to "This is text".</p>
+<p>Note that this function can be misleading. If the element foo was created from this XML: </p><pre class="fragment"> <foo><b>This is text</b></foo>
+</pre><p>then the value of str would be null. The first child node isn't a text node, it is another element. From this XML: </p><pre class="fragment"> <foo>This is <b>text</b></foo>
+</pre><p> <a class="el" href="classtinyxml2_1_1_x_m_l_element.html#a6d5c8d115561ade4e4456b71d91b6f51">GetText()</a> will return "This is ". </p>
+<p>Convenience method to create a new <a class="el" href="classtinyxml2_1_1_x_m_l_element.html">XMLElement</a> and add it as last (right) child of this node. Returns the created and inserted element. </p>
+<p>Given an attribute name, <a class="el" href="classtinyxml2_1_1_x_m_l_element.html#a95a89b13bb14a2d4655e2b5b406c00d4">IntAttribute()</a> returns the value of the attribute interpreted as an integer. The default value will be returned if the attribute isn't present, or if there is an error. (For a method with error checking, see <a class="el" href="classtinyxml2_1_1_x_m_l_element.html#a8a78bc1187c1c45ad89f2690eab567b1">QueryIntAttribute()</a>). </p>
+<p>Given an attribute name, <a class="el" href="classtinyxml2_1_1_x_m_l_element.html#a5b7df3bed2b8954eabf227fa204522eb">QueryAttribute()</a> returns XML_SUCCESS, XML_WRONG_ATTRIBUTE_TYPE if the conversion can't be performed, or XML_NO_ATTRIBUTE if the attribute doesn't exist. It is overloaded for the primitive types, and is a generally more convenient replacement of <a class="el" href="classtinyxml2_1_1_x_m_l_element.html#a8a78bc1187c1c45ad89f2690eab567b1">QueryIntAttribute()</a> and related functions.</p>
+<p>If successful, the result of the conversion will be written to 'value'. If not successful, nothing will be written to 'value'. This allows you to provide default value:</p>
+<pre class="fragment">int value = 10;
+QueryAttribute( "foo", &value ); // if "foo" isn't found, value will still be 10
+<p>Given an attribute name, <a class="el" href="classtinyxml2_1_1_x_m_l_element.html#a8a78bc1187c1c45ad89f2690eab567b1">QueryIntAttribute()</a> returns XML_SUCCESS, XML_WRONG_ATTRIBUTE_TYPE if the conversion can't be performed, or XML_NO_ATTRIBUTE if the attribute doesn't exist. If successful, the result of the conversion will be written to 'value'. If not successful, nothing will be written to 'value'. This allows you to provide default value:</p>
+<pre class="fragment">int value = 10;
+QueryIntAttribute( "foo", &value ); // if "foo" isn't found, value will still be 10
+<p>Convenience method to query the value of a child text node. This is probably best shown by example. Given you have a document is this form: </p><pre class="fragment"> <point>
+ <x>1</x>
+ <y>1.4</y>
+ </point>
+</pre><p>The <a class="el" href="classtinyxml2_1_1_x_m_l_element.html#a926357996bef633cb736e1a558419632">QueryIntText()</a> and similar functions provide a safe and easier way to get to the "value" of x and y.</p>
+<pre class="fragment"> int x = 0;
+ float y = 0; // types of x and y are contrived for example
+ const XMLElement* xElement = pointElement->FirstChildElement( "x" );
+</pre><dl class="section return"><dt>Returns</dt><dd>XML_SUCCESS (0) on success, XML_CAN_NOT_CONVERT_TEXT if the text cannot be converted to the requested type, and XML_NO_TEXT_NODE if there is no child text to query. </dd></dl>
+<p>Convenience function for easy access to the text inside an element. Although easy and concise, <a class="el" href="classtinyxml2_1_1_x_m_l_element.html#a1f9c2cd61b72af5ae708d37b7ad283ce">SetText()</a> is limited compared to creating an <a class="el" href="classtinyxml2_1_1_x_m_l_text.html">XMLText</a> child and mutating it directly.</p>
+<p>If the first child of 'this' is a <a class="el" href="classtinyxml2_1_1_x_m_l_text.html">XMLText</a>, <a class="el" href="classtinyxml2_1_1_x_m_l_element.html#a1f9c2cd61b72af5ae708d37b7ad283ce">SetText()</a> sets its value to the given string, otherwise it will create a first child that is an <a class="el" href="classtinyxml2_1_1_x_m_l_text.html">XMLText</a>.</p>
+<p>This is a convenient method for setting the text of simple contained text: </p><pre class="fragment"><foo>This is text</foo>
+ fooElement->SetText( "Hullaballoo!" );
+<foo>Hullaballoo!</foo>
+</pre><p>Note that this function can be misleading. If the element foo was created from this XML: </p><pre class="fragment"> <foo><b>This is text</b></foo>
+</pre><p>then it will not change "This is text", but rather prefix it with a text element: </p><pre class="fragment"> <foo>Hullaballoo!<b>This is text</b></foo>
+</pre><p>For this XML: </p><pre class="fragment"> <foo />
+</pre><p> <a class="el" href="classtinyxml2_1_1_x_m_l_element.html#a1f9c2cd61b72af5ae708d37b7ad283ce">SetText()</a> will generate </p><pre class="fragment"> <foo>Hullaballoo!</foo>
+<p>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-><a class="el" href="classtinyxml2_1_1_x_m_l_node.html#af343d1ef0b45c0020e62d784d7e67a68" title="Get the XMLDocument that owns this XMLNode.">GetDocument()</a>)</p>
+<p>Note: if called on a <a class="el" href="classtinyxml2_1_1_x_m_l_document.html">XMLDocument</a>, this will return null. </p>
+Generated on Sun Jun 6 2021 17:10:05 for TinyXML-2 by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.1
+<div class="title">tinyxml2::XMLHandle Member List</div> </div>
+</div><!--header-->
+<div class="contents">
+
+<p>This is the complete list of members for <a class="el" href="classtinyxml2_1_1_x_m_l_handle.html">tinyxml2::XMLHandle</a>, including all inherited members.</p>
+Generated on Sun Jun 6 2021 17:10:05 for TinyXML-2 by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.1
+<tr class="memdesc:a9c240a35c18f053509b4b97ddccd9793"><td class="mdescLeft"> </td><td class="mdescRight">Create a handle from any node (at any depth of the tree.) This can be a null pointer. <br /></td></tr>
+<tr class="memdesc:aa2edbc1c0d3e3e8259bd98de7f1cf500"><td class="mdescLeft"> </td><td class="mdescRight">Create a handle from a node. <br /></td></tr>
+<tr class="memdesc:a536447dc7f54c0cd11e031dad94795ae"><td class="mdescLeft"> </td><td class="mdescRight">Get the first child of this handle. <br /></td></tr>
+<tr class="memdesc:a74b04dd0f15e0bf01860e282b840b6a3"><td class="mdescLeft"> </td><td class="mdescRight">Get the first child element of this handle. <br /></td></tr>
+<tr class="memdesc:a9d09f04435f0f2f7d0816b0198d0517b"><td class="mdescLeft"> </td><td class="mdescRight">Get the last child of this handle. <br /></td></tr>
+<tr class="memdesc:a42cccd0ce8b1ce704f431025e9f19e0c"><td class="mdescLeft"> </td><td class="mdescRight">Get the last child element of this handle. <br /></td></tr>
+<tr class="memdesc:a428374e756f4db4cbc287fec64eae02c"><td class="mdescLeft"> </td><td class="mdescRight">Get the previous sibling of this handle. <br /></td></tr>
+<tr class="memdesc:a786957e498039554ed334cdc36612a7e"><td class="mdescLeft"> </td><td class="mdescRight">Get the previous sibling element of this handle. <br /></td></tr>
+<tr class="memdesc:aad2eccc7c7c7b18145877c978c3850b5"><td class="mdescLeft"> </td><td class="mdescRight">Get the next sibling of this handle. <br /></td></tr>
+<tr class="memdesc:ae41d88ee061f3c49a081630ff753b2c5"><td class="mdescLeft"> </td><td class="mdescRight">Get the next sibling element of this handle. <br /></td></tr>
+<tr class="memdesc:a03ea6ec970a021b71bf1219a0f6717df"><td class="mdescLeft"> </td><td class="mdescRight">Safe cast to <a class="el" href="classtinyxml2_1_1_x_m_l_node.html">XMLNode</a>. This can return null. <br /></td></tr>
+<tr class="memdesc:a5e73ed8f3f6f9619d5a8bb1862c47d99"><td class="mdescLeft"> </td><td class="mdescRight">Safe cast to <a class="el" href="classtinyxml2_1_1_x_m_l_element.html">XMLElement</a>. This can return null. <br /></td></tr>
+<tr class="memdesc:a6ab9e8cbfb41417246e5657e3842c62a"><td class="mdescLeft"> </td><td class="mdescRight">Safe cast to <a class="el" href="classtinyxml2_1_1_x_m_l_text.html">XMLText</a>. This can return null. <br /></td></tr>
+<tr class="memdesc:aa387368a1ad8d843a9f12df863d298de"><td class="mdescLeft"> </td><td class="mdescRight">Safe cast to <a class="el" href="classtinyxml2_1_1_x_m_l_unknown.html">XMLUnknown</a>. This can return null. <br /></td></tr>
+<tr class="memdesc:a108858be7ee3eb53f73b5194c1aa8ff0"><td class="mdescLeft"> </td><td class="mdescRight">Safe cast to <a class="el" href="classtinyxml2_1_1_x_m_l_declaration.html">XMLDeclaration</a>. This can return null. <br /></td></tr>
+<div class="textblock"><p>A <a class="el" href="classtinyxml2_1_1_x_m_l_handle.html">XMLHandle</a> is a class that wraps a node pointer with null checks; this is an incredibly useful thing. Note that <a class="el" href="classtinyxml2_1_1_x_m_l_handle.html">XMLHandle</a> is not part of the TinyXML-2 DOM structure. It is a separate utility class.</p>
+<p>Take an example: </p><pre class="fragment"><Document>
+ <Element attributeA = "valueA">
+ <Child attributeB = "value1" />
+ <Child attributeB = "value2" />
+ </Element>
+</Document>
+</pre><p>Assuming you want the value of "attributeB" in the 2nd "Child" element, it's very easy to write a <em>lot</em> of code that looks like:</p>
+</pre><p>And that doesn't even cover "else" cases. <a class="el" href="classtinyxml2_1_1_x_m_l_handle.html">XMLHandle</a> addresses the verbosity of such code. A <a class="el" href="classtinyxml2_1_1_x_m_l_handle.html">XMLHandle</a> checks for null pointers so it is perfectly safe and correct to use:</p>
+</pre><p>Which is MUCH more concise and useful.</p>
+<p>It is also safe to copy handles - internally they are nothing more than node pointers. </p><pre class="fragment">XMLHandle handleCopy = handle;
+</pre><p>See also <a class="el" href="classtinyxml2_1_1_x_m_l_const_handle.html">XMLConstHandle</a>, which is the same as <a class="el" href="classtinyxml2_1_1_x_m_l_handle.html">XMLHandle</a>, but operates on const objects. </p>
+</div><hr/>The documentation for this class was generated from the following file:<ul>
+Generated on Sun Jun 6 2021 17:10:05 for TinyXML-2 by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.1
+<div class="title">tinyxml2::XMLNode Member List</div> </div>
+</div><!--header-->
+<div class="contents">
+
+<p>This is the complete list of members for <a class="el" href="classtinyxml2_1_1_x_m_l_node.html">tinyxml2::XMLNode</a>, including all inherited members.</p>
+Generated on Sun Jun 6 2021 17:10:05 for TinyXML-2 by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.1
+<tr class="memdesc:aab516e699567f75cc9ab2ef2eee501e8"><td class="mdescLeft"> </td><td class="mdescRight">Safely cast to an Element, or null. <br /></td></tr>
+<tr class="memdesc:aff47671055aa99840a1c1ebd661e63e3"><td class="mdescLeft"> </td><td class="mdescRight">Safely cast to a Comment, or null. <br /></td></tr>
+<tr class="memdesc:a836e2966ed736fc3c94f70e12a2a3357"><td class="mdescLeft"> </td><td class="mdescRight">Safely cast to a Document, or null. <br /></td></tr>
+<tr class="memdesc:a174fd4c22c010b58138c1b84a0dfbd51"><td class="mdescLeft"> </td><td class="mdescRight">Safely cast to a Declaration, or null. <br /></td></tr>
+<tr class="memdesc:a8675a74aa0ada6eccab0c77ef3e5b9bd"><td class="mdescLeft"> </td><td class="mdescRight">Safely cast to an Unknown, or null. <br /></td></tr>
+<tr class="memdesc:a9b5fc636646fda761d342c72e91cb286"><td class="mdescLeft"> </td><td class="mdescRight">Gets the line number the node is in, if the document was parsed from a file. <br /></td></tr>
+<tr class="memdesc:ae0f62bc186c56c2e0483ebd52dbfbe34"><td class="mdescLeft"> </td><td class="mdescRight">Get the parent of this node on the DOM. <br /></td></tr>
+<tr class="memdesc:ac3ab489e6e202a3cd1762d3b332e89d4"><td class="mdescLeft"> </td><td class="mdescRight">Returns true if this node has no children. <br /></td></tr>
+<tr class="memdesc:ae7dc225e1018cdd685f7563593a1fe08"><td class="mdescLeft"> </td><td class="mdescRight">Get the first child node, or null if none exists. <br /></td></tr>
+<tr class="memdesc:a9b8583a277e8e26f4cbbb5492786778e"><td class="mdescLeft"> </td><td class="mdescRight">Get the last child node, or null if none exists. <br /></td></tr>
+<tr class="memdesc:aac667c513d445f8b783e1e15ef9d3551"><td class="mdescLeft"> </td><td class="mdescRight">Get the previous (left) sibling node of this node. <br /></td></tr>
+<tr class="memdesc:a872936cae46fb473eb47fec99129fc70"><td class="mdescLeft"> </td><td class="mdescRight">Get the previous (left) sibling element of this node, with an optionally supplied name. <br /></td></tr>
+<tr class="memdesc:a79db9ef0fe014d27790f2218b87bcbb5"><td class="mdescLeft"> </td><td class="mdescRight">Get the next (right) sibling node of this node. <br /></td></tr>
+<tr class="memdesc:a1264c86233328f0cd36297552d982f80"><td class="mdescLeft"> </td><td class="mdescRight">Get the next (right) sibling element of this node, with an optionally supplied name. <br /></td></tr>
+<div class="textblock"><p><a class="el" href="classtinyxml2_1_1_x_m_l_node.html">XMLNode</a> 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 <a class="el" href="classtinyxml2_1_1_x_m_l_document.html">XMLDocument</a>. The type of a <a class="el" href="classtinyxml2_1_1_x_m_l_node.html">XMLNode</a> can be queried, and it can be cast to its more defined type.</p>
+<p>A <a class="el" href="classtinyxml2_1_1_x_m_l_document.html">XMLDocument</a> allocates memory for all its Nodes. When the <a class="el" href="classtinyxml2_1_1_x_m_l_document.html">XMLDocument</a> gets deleted, all its Nodes will also be deleted.</p>
+<pre class="fragment">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)</pre> </div><h2 class="groupheader">Member Function Documentation</h2>
+<p>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 <a class="el" href="classtinyxml2_1_1_x_m_l_visitor.html">XMLVisitor</a> interface.</p>
+<p>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.)</p>
+<p>The interface has been based on ideas from:</p>
+<p>Which are both good references for "visiting".</p>
+<p>An example of using <a class="el" href="classtinyxml2_1_1_x_m_l_node.html#a81e66df0a44c67a7af17f3b77a152785">Accept()</a>: </p><pre class="fragment">XMLPrinter printer;
+<p>Make a copy of this node and all its children.</p>
+<p>If the 'target' is null, then the nodes will be allocated in the current document. If 'target' is specified, the memory will be allocated is the specified <a class="el" href="classtinyxml2_1_1_x_m_l_document.html">XMLDocument</a>.</p>
+<p>NOTE: This is probably not the correct tool to copy a document, since XMLDocuments can have multiple top level XMLNodes. You probably want to use <a class="el" href="classtinyxml2_1_1_x_m_l_document.html#af592ffc91514e25a39664521ac83db45">XMLDocument::DeepCopy()</a> </p>
+<p>Get user data set into the <a class="el" href="classtinyxml2_1_1_x_m_l_node.html">XMLNode</a>. TinyXML-2 in no way processes or interprets user data. It is initially 0. </p>
+<p>Add a node after the specified child node. If the child node is already part of the document, it is moved from its old location to the new location. Returns the addThis argument or 0 if the afterThis node is not a child of this node, or if the node does not belong to the same document. </p>
+<p>Add a child node as the last (right) child. If the child node is already part of the document, it is moved from its old location to the new location. Returns the addThis argument or 0 if the node does not belong to the same document. </p>
+<p>Add a child node as the first (left) child. If the child node is already part of the document, it is moved from its old location to the new location. Returns the addThis argument or 0 if the node does not belong to the same document. </p>
+<p>Set user data into the <a class="el" href="classtinyxml2_1_1_x_m_l_node.html">XMLNode</a>. TinyXML-2 in no way processes or interprets user data. It is initially 0. </p>
+<p>Set the Value of an XML node. </p><dl class="section see"><dt>See also</dt><dd><a class="el" href="classtinyxml2_1_1_x_m_l_node.html#a66344989a4b436155bcda72bd6b07b82">Value()</a> </dd></dl>
+<p>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-><a class="el" href="classtinyxml2_1_1_x_m_l_node.html#af343d1ef0b45c0020e62d784d7e67a68" title="Get the XMLDocument that owns this XMLNode.">GetDocument()</a>)</p>
+<p>Note: if called on a <a class="el" href="classtinyxml2_1_1_x_m_l_document.html">XMLDocument</a>, this will return null. </p>
+Generated on Sun Jun 6 2021 17:10:05 for TinyXML-2 by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.1
+<div class="title">tinyxml2::XMLPrinter Member List</div> </div>
+</div><!--header-->
+<div class="contents">
+
+<p>This is the complete list of members for <a class="el" href="classtinyxml2_1_1_x_m_l_printer.html">tinyxml2::XMLPrinter</a>, including all inherited members.</p>
+Generated on Sun Jun 6 2021 17:10:05 for TinyXML-2 by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.1
+<tr class="memdesc:a9a4e2c9348b42e147629d5a99f4af3f0"><td class="mdescLeft"> </td><td class="mdescRight">If streaming, add an attribute to an open element. <br /></td></tr>
+<tr class="memdesc:ad04d29562b46fcdb23ab320f8b664240"><td class="mdescLeft"> </td><td class="mdescRight">If streaming, close the Element. <br /></td></tr>
+<tr class="memdesc:a3e0d4d78de25d4cf081009e1431cea7e"><td class="mdescLeft"> </td><td class="mdescRight">Add a text node from an integer. <br /></td></tr>
+<tr class="memdesc:a661fb50e7e0a4918d2d259cb0fae647e"><td class="mdescLeft"> </td><td class="mdescRight">Add a text node from an unsigned. <br /></td></tr>
+<tr class="memdesc:a96b0a0bfe105154a0a6c37d725258f0a"><td class="mdescLeft"> </td><td class="mdescRight">Add a text node from a signed 64bit integer. <br /></td></tr>
+<tr class="memdesc:a60b0a4cf57371ff8679c2c7556ccb708"><td class="mdescLeft"> </td><td class="mdescRight">Add a text node from an unsigned 64bit integer. <br /></td></tr>
+<tr class="memdesc:a4390e5fa1ed05189a8686647345ab29f"><td class="mdescLeft"> </td><td class="mdescRight">Add a text node from a bool. <br /></td></tr>
+<tr class="memdesc:a1dbb1390e829d0673af66b9cd1928bd7"><td class="mdescLeft"> </td><td class="mdescRight">Add a text node from a float. <br /></td></tr>
+<tr class="memdesc:aa715302dfc09473c77c853cbd5431965"><td class="mdescLeft"> </td><td class="mdescRight">Add a text node from a double. <br /></td></tr>
+<div class="textblock"><p>Printing functionality. The <a class="el" href="classtinyxml2_1_1_x_m_l_printer.html">XMLPrinter</a> gives you more options than the <a class="el" href="classtinyxml2_1_1_x_m_l_document.html#a867cf5fa3e3ff6ae4847a8b7ee8ec083">XMLDocument::Print()</a> method.</p>
+<p>It can:</p><ol type="1">
+<li>Print to memory.</li>
+<li>Print to a file you provide.</li>
+<li>Print XML without a <a class="el" href="classtinyxml2_1_1_x_m_l_document.html">XMLDocument</a>.</li>
+</ol>
+<p>Print to Memory</p>
+<pre class="fragment">XMLPrinter printer;
+doc.Print( &printer );
+SomeFunction( printer.CStr() );
+</pre><p>Print to a File</p>
+<p>You provide the file pointer. </p><pre class="fragment">XMLPrinter printer( fp );
+doc.Print( &printer );
+</pre><p>Print without a <a class="el" href="classtinyxml2_1_1_x_m_l_document.html">XMLDocument</a></p>
+<p>When loading, an XML parser is very useful. However, sometimes when saving, it just gets in the way. The code is often set up for streaming, and constructing the DOM is just overhead.</p>
+<p>The Printer supports the streaming case. The following code prints out a trivially simple XML file without ever creating an XML document.</p>
+<pre class="fragment">XMLPrinter printer( fp );
+printer.OpenElement( "foo" );
+printer.PushAttribute( "foo", "bar" );
+printer.CloseElement();
+</pre> </div><h2 class="groupheader">Constructor & Destructor Documentation</h2>
+<p>Construct the printer. If the FILE* is specified, this will print to the FILE. Else it will print to memory, and the result is available in <a class="el" href="classtinyxml2_1_1_x_m_l_printer.html#a180671d73844f159f2d4aafbc11d106e">CStr()</a>. If 'compact' is set to true, then output is created with only required whitespace and newlines. </p>
+
+</div>
+</div>
+<h2 class="groupheader">Member Function Documentation</h2>
+<p>If streaming, start writing an element. The element must be closed with <a class="el" href="classtinyxml2_1_1_x_m_l_printer.html#ad04d29562b46fcdb23ab320f8b664240" title="If streaming, close the Element.">CloseElement()</a> </p>
+<p>Prints out the space before an element. You may override to change the space and tabs used. A <a class="el" href="classtinyxml2_1_1_x_m_l_printer.html#a01148e2ebe6776e38c5a3e41bc5feb74">PrintSpace()</a> override should call Print(). </p>
+Generated on Sun Jun 6 2021 17:10:05 for TinyXML-2 by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.1
+<div class="title">tinyxml2::XMLText Member List</div> </div>
+</div><!--header-->
+<div class="contents">
+
+<p>This is the complete list of members for <a class="el" href="classtinyxml2_1_1_x_m_l_text.html">tinyxml2::XMLText</a>, including all inherited members.</p>
+Generated on Sun Jun 6 2021 17:10:05 for TinyXML-2 by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.1
+<tr class="memdesc:ad080357d76ab7cc59d7651249949329d"><td class="mdescLeft"> </td><td class="mdescRight">Declare whether this should be CDATA or standard text. <br /></td></tr>
+<tr class="memdesc:ac1bb5ea4166c320882d9e0ad16fd385b"><td class="mdescLeft"> </td><td class="mdescRight">Returns true if this is a CDATA text element. <br /></td></tr>
+<tr class="memdesc:aab516e699567f75cc9ab2ef2eee501e8 inherit pub_methods_classtinyxml2_1_1_x_m_l_node"><td class="mdescLeft"> </td><td class="mdescRight">Safely cast to an Element, or null. <br /></td></tr>
+<tr class="memdesc:aff47671055aa99840a1c1ebd661e63e3 inherit pub_methods_classtinyxml2_1_1_x_m_l_node"><td class="mdescLeft"> </td><td class="mdescRight">Safely cast to a Comment, or null. <br /></td></tr>
+<tr class="memdesc:a836e2966ed736fc3c94f70e12a2a3357 inherit pub_methods_classtinyxml2_1_1_x_m_l_node"><td class="mdescLeft"> </td><td class="mdescRight">Safely cast to a Document, or null. <br /></td></tr>
+<tr class="memdesc:a174fd4c22c010b58138c1b84a0dfbd51 inherit pub_methods_classtinyxml2_1_1_x_m_l_node"><td class="mdescLeft"> </td><td class="mdescRight">Safely cast to a Declaration, or null. <br /></td></tr>
+<tr class="memdesc:a8675a74aa0ada6eccab0c77ef3e5b9bd inherit pub_methods_classtinyxml2_1_1_x_m_l_node"><td class="mdescLeft"> </td><td class="mdescRight">Safely cast to an Unknown, or null. <br /></td></tr>
+<tr class="memdesc:a9b5fc636646fda761d342c72e91cb286 inherit pub_methods_classtinyxml2_1_1_x_m_l_node"><td class="mdescLeft"> </td><td class="mdescRight">Gets the line number the node is in, if the document was parsed from a file. <br /></td></tr>
+<tr class="memdesc:ae0f62bc186c56c2e0483ebd52dbfbe34 inherit pub_methods_classtinyxml2_1_1_x_m_l_node"><td class="mdescLeft"> </td><td class="mdescRight">Get the parent of this node on the DOM. <br /></td></tr>
+<tr class="memdesc:ac3ab489e6e202a3cd1762d3b332e89d4 inherit pub_methods_classtinyxml2_1_1_x_m_l_node"><td class="mdescLeft"> </td><td class="mdescRight">Returns true if this node has no children. <br /></td></tr>
+<tr class="memdesc:ae7dc225e1018cdd685f7563593a1fe08 inherit pub_methods_classtinyxml2_1_1_x_m_l_node"><td class="mdescLeft"> </td><td class="mdescRight">Get the first child node, or null if none exists. <br /></td></tr>
+<tr class="memdesc:a9b8583a277e8e26f4cbbb5492786778e inherit pub_methods_classtinyxml2_1_1_x_m_l_node"><td class="mdescLeft"> </td><td class="mdescRight">Get the last child node, or null if none exists. <br /></td></tr>
+<tr class="memdesc:a872936cae46fb473eb47fec99129fc70 inherit pub_methods_classtinyxml2_1_1_x_m_l_node"><td class="mdescLeft"> </td><td class="mdescRight">Get the previous (left) sibling element of this node, with an optionally supplied name. <br /></td></tr>
+<tr class="memdesc:a79db9ef0fe014d27790f2218b87bcbb5 inherit pub_methods_classtinyxml2_1_1_x_m_l_node"><td class="mdescLeft"> </td><td class="mdescRight">Get the next (right) sibling node of this node. <br /></td></tr>
+<tr class="memdesc:a1264c86233328f0cd36297552d982f80 inherit pub_methods_classtinyxml2_1_1_x_m_l_node"><td class="mdescLeft"> </td><td class="mdescRight">Get the next (right) sibling element of this node, with an optionally supplied name. <br /></td></tr>
+<p>Note that a text node can have child element nodes, for example: </p><pre class="fragment"><root>This is <b>bold</b></root>
+</pre><p>A text node can have 2 ways to output the next. "normal" output and CDATA. It will default to the mode it was parsed from the XML file and you generally want to leave it alone, but you can change the output mode with <a class="el" href="classtinyxml2_1_1_x_m_l_text.html#ad080357d76ab7cc59d7651249949329d" title="Declare whether this should be CDATA or standard text.">SetCData()</a> and query it with <a class="el" href="classtinyxml2_1_1_x_m_l_text.html#ac1bb5ea4166c320882d9e0ad16fd385b" title="Returns true if this is a CDATA text element.">CData()</a>. </p>
+</div><h2 class="groupheader">Member Function Documentation</h2>
+<p>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 <a class="el" href="classtinyxml2_1_1_x_m_l_visitor.html">XMLVisitor</a> interface.</p>
+<p>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.)</p>
+<p>The interface has been based on ideas from:</p>
+<p>Which are both good references for "visiting".</p>
+<p>An example of using <a class="el" href="classtinyxml2_1_1_x_m_l_text.html#a1b2c1448f1a21299d0a7913f18b55206">Accept()</a>: </p><pre class="fragment">XMLPrinter printer;
+<p>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-><a class="el" href="classtinyxml2_1_1_x_m_l_node.html#af343d1ef0b45c0020e62d784d7e67a68" title="Get the XMLDocument that owns this XMLNode.">GetDocument()</a>)</p>
+<p>Note: if called on a <a class="el" href="classtinyxml2_1_1_x_m_l_document.html">XMLDocument</a>, this will return null. </p>
+Generated on Sun Jun 6 2021 17:10:05 for TinyXML-2 by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.1
+<div class="title">tinyxml2::XMLUnknown Member List</div> </div>
+</div><!--header-->
+<div class="contents">
+
+<p>This is the complete list of members for <a class="el" href="classtinyxml2_1_1_x_m_l_unknown.html">tinyxml2::XMLUnknown</a>, including all inherited members.</p>
+Generated on Sun Jun 6 2021 17:10:05 for TinyXML-2 by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.1
+<tr class="memdesc:af4374856421921cad578c8affae872b6"><td class="mdescLeft"> </td><td class="mdescRight">Safely cast to an Unknown, or null. <br /></td></tr>
+<tr class="memdesc:aab516e699567f75cc9ab2ef2eee501e8 inherit pub_methods_classtinyxml2_1_1_x_m_l_node"><td class="mdescLeft"> </td><td class="mdescRight">Safely cast to an Element, or null. <br /></td></tr>
+<tr class="memdesc:aff47671055aa99840a1c1ebd661e63e3 inherit pub_methods_classtinyxml2_1_1_x_m_l_node"><td class="mdescLeft"> </td><td class="mdescRight">Safely cast to a Comment, or null. <br /></td></tr>
+<tr class="memdesc:a836e2966ed736fc3c94f70e12a2a3357 inherit pub_methods_classtinyxml2_1_1_x_m_l_node"><td class="mdescLeft"> </td><td class="mdescRight">Safely cast to a Document, or null. <br /></td></tr>
+<tr class="memdesc:a174fd4c22c010b58138c1b84a0dfbd51 inherit pub_methods_classtinyxml2_1_1_x_m_l_node"><td class="mdescLeft"> </td><td class="mdescRight">Safely cast to a Declaration, or null. <br /></td></tr>
+<tr class="memdesc:a9b5fc636646fda761d342c72e91cb286 inherit pub_methods_classtinyxml2_1_1_x_m_l_node"><td class="mdescLeft"> </td><td class="mdescRight">Gets the line number the node is in, if the document was parsed from a file. <br /></td></tr>
+<tr class="memdesc:ae0f62bc186c56c2e0483ebd52dbfbe34 inherit pub_methods_classtinyxml2_1_1_x_m_l_node"><td class="mdescLeft"> </td><td class="mdescRight">Get the parent of this node on the DOM. <br /></td></tr>
+<tr class="memdesc:ac3ab489e6e202a3cd1762d3b332e89d4 inherit pub_methods_classtinyxml2_1_1_x_m_l_node"><td class="mdescLeft"> </td><td class="mdescRight">Returns true if this node has no children. <br /></td></tr>
+<tr class="memdesc:ae7dc225e1018cdd685f7563593a1fe08 inherit pub_methods_classtinyxml2_1_1_x_m_l_node"><td class="mdescLeft"> </td><td class="mdescRight">Get the first child node, or null if none exists. <br /></td></tr>
+<tr class="memdesc:a9b8583a277e8e26f4cbbb5492786778e inherit pub_methods_classtinyxml2_1_1_x_m_l_node"><td class="mdescLeft"> </td><td class="mdescRight">Get the last child node, or null if none exists. <br /></td></tr>
+<tr class="memdesc:a872936cae46fb473eb47fec99129fc70 inherit pub_methods_classtinyxml2_1_1_x_m_l_node"><td class="mdescLeft"> </td><td class="mdescRight">Get the previous (left) sibling element of this node, with an optionally supplied name. <br /></td></tr>
+<tr class="memdesc:a79db9ef0fe014d27790f2218b87bcbb5 inherit pub_methods_classtinyxml2_1_1_x_m_l_node"><td class="mdescLeft"> </td><td class="mdescRight">Get the next (right) sibling node of this node. <br /></td></tr>
+<tr class="memdesc:a1264c86233328f0cd36297552d982f80 inherit pub_methods_classtinyxml2_1_1_x_m_l_node"><td class="mdescLeft"> </td><td class="mdescRight">Get the next (right) sibling element of this node, with an optionally supplied name. <br /></td></tr>
+<div class="textblock"><p>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.</p>
+<p>DTD tags get thrown into XMLUnknowns. </p>
+</div><h2 class="groupheader">Member Function Documentation</h2>
+<p>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 <a class="el" href="classtinyxml2_1_1_x_m_l_visitor.html">XMLVisitor</a> interface.</p>
+<p>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.)</p>
+<p>The interface has been based on ideas from:</p>
+<p>Which are both good references for "visiting".</p>
+<p>An example of using <a class="el" href="classtinyxml2_1_1_x_m_l_unknown.html#a70983aa1b1cff3d3aa6d4d0a80e5ee48">Accept()</a>: </p><pre class="fragment">XMLPrinter printer;
+<p>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-><a class="el" href="classtinyxml2_1_1_x_m_l_node.html#af343d1ef0b45c0020e62d784d7e67a68" title="Get the XMLDocument that owns this XMLNode.">GetDocument()</a>)</p>
+<p>Note: if called on a <a class="el" href="classtinyxml2_1_1_x_m_l_document.html">XMLDocument</a>, this will return null. </p>
+Generated on Sun Jun 6 2021 17:10:05 for TinyXML-2 by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.1
+<div class="title">tinyxml2::XMLVisitor Member List</div> </div>
+</div><!--header-->
+<div class="contents">
+
+<p>This is the complete list of members for <a class="el" href="classtinyxml2_1_1_x_m_l_visitor.html">tinyxml2::XMLVisitor</a>, including all inherited members.</p>
+Generated on Sun Jun 6 2021 17:10:05 for TinyXML-2 by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.1
+<div class="textblock"><p>Implements the interface to the "Visitor pattern" (see the Accept() method.) If you call the Accept() method, it requires being passed a <a class="el" href="classtinyxml2_1_1_x_m_l_visitor.html">XMLVisitor</a> class to handle callbacks. For nodes that contain other nodes (Document, Element) you will get called with a VisitEnter/VisitExit pair. Nodes that are always leafs are simply called with <a class="el" href="classtinyxml2_1_1_x_m_l_visitor.html#adc75bd459fc7ba8223b50f0616767f9a" title="Visit a declaration.">Visit()</a>.</p>
+<p>If you return 'true' from a Visit method, recursive parsing will continue. If you return false, <b>no children of this node or its siblings</b> will be visited.</p>
+<p>All flavors of Visit methods have a default implementation that returns 'true' (continue visiting). You need to only override methods that are interesting to you.</p>
+<p>Generally Accept() is called on the <a class="el" href="classtinyxml2_1_1_x_m_l_document.html">XMLDocument</a>, although all nodes support visiting.</p>
+<p>You should never change the document from a callback.</p>
+Generated on Sun Jun 6 2021 17:10:05 for TinyXML-2 by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.1
-<dd>use ToElement. Return the handle as a <a class="el" href="classTiXmlElement.html" title="The element is a container class.">TiXmlElement</a>. This may return null. </dd>
-<dd>use ToNode. Return the handle as a <a class="el" href="classTiXmlNode.html" title="The parent class for everything in the Document Object Model.">TiXmlNode</a>. This may return null. </dd>
-<dd>use ToUnknown() Return the handle as a <a class="el" href="classTiXmlUnknown.html" title="Any tag that tinyXml doesn't recognize is saved as an unknown.">TiXmlUnknown</a>. This may return null. </dd>
+Generated on Sun Jun 6 2021 17:10:05 for TinyXML-2 by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.1
+Generated on Sun Jun 6 2021 17:10:05 for TinyXML-2 by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.1