⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 classtixmlhandle.html

📁 xml文件处理多平台类
💻 HTML
字号:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1"><title>TiXmlHandle class Reference</title><link href="doxygen.css" rel="stylesheet" type="text/css"></head><body><!-- Generated by Doxygen 1.2.18 --><center><a class="qindex" href="index.html">Main Page</a> &nbsp; <a class="qindex" href="hierarchy.html">Class Hierarchy</a> &nbsp; <a class="qindex" href="annotated.html">Compound List</a> &nbsp; <a class="qindex" href="files.html">File List</a> &nbsp; <a class="qindex" href="functions.html">Compound Members</a> &nbsp; </center><hr><h1>TiXmlHandle Class Reference</h1>A TiXmlHandle is a class that wraps a node pointer with null checks; this is an incredibly useful thing. <a href="#_details">More...</a><p><code>#include &lt;<a class="el" href="tinyxml_8h-source.html">tinyxml.h</a>&gt;</code><p><a href="classTiXmlHandle-members.html">List of all members.</a><table border=0 cellpadding=0 cellspacing=0><tr><td></td></tr><tr><td colspan=2><br><h2>Public Methods</h2></td></tr><tr><td nowrap align=right valign=top><a name="a0" doxytag="TiXmlHandle::TiXmlHandle"></a>&nbsp;</td><td valign=bottom><a class="el" href="classTiXmlHandle.html#a0">TiXmlHandle</a> (<a class="el" href="classTiXmlNode.html">TiXmlNode</a> *node)</td></tr><tr><td>&nbsp;</td><td><font size=-1><em>Create a handle from any node (at any depth of the tree.) This can be a null pointer.</em></font><br><br></td></tr><tr><td nowrap align=right valign=top><a name="a1" doxytag="TiXmlHandle::TiXmlHandle"></a>&nbsp;</td><td valign=bottom><a class="el" href="classTiXmlHandle.html#a1">TiXmlHandle</a> (const TiXmlHandle &amp;ref)</td></tr><tr><td>&nbsp;</td><td><font size=-1><em>Copy constructor.</em></font><br><br></td></tr><tr><td nowrap align=right valign=top><a name="a3" doxytag="TiXmlHandle::FirstChild"></a>TiXmlHandle&nbsp;</td><td valign=bottom><a class="el" href="classTiXmlHandle.html#a3">FirstChild</a> () const</td></tr><tr><td>&nbsp;</td><td><font size=-1><em>Return a handle to the first child node.</em></font><br><br></td></tr><tr><td nowrap align=right valign=top><a name="a4" doxytag="TiXmlHandle::FirstChild"></a>TiXmlHandle&nbsp;</td><td valign=bottom><a class="el" href="classTiXmlHandle.html#a4">FirstChild</a> (const char *value) const</td></tr><tr><td>&nbsp;</td><td><font size=-1><em>Return a handle to the first child node with the given name.</em></font><br><br></td></tr><tr><td nowrap align=right valign=top><a name="a5" doxytag="TiXmlHandle::FirstChildElement"></a>TiXmlHandle&nbsp;</td><td valign=bottom><a class="el" href="classTiXmlHandle.html#a5">FirstChildElement</a> () const</td></tr><tr><td>&nbsp;</td><td><font size=-1><em>Return a handle to the first child element.</em></font><br><br></td></tr><tr><td nowrap align=right valign=top><a name="a6" doxytag="TiXmlHandle::FirstChildElement"></a>TiXmlHandle&nbsp;</td><td valign=bottom><a class="el" href="classTiXmlHandle.html#a6">FirstChildElement</a> (const char *value) const</td></tr><tr><td>&nbsp;</td><td><font size=-1><em>Return a handle to the first child element with the given name.</em></font><br><br></td></tr><tr><td nowrap align=right valign=top>TiXmlHandle&nbsp;</td><td valign=bottom><a class="el" href="classTiXmlHandle.html#a7">Child</a> (const char *value, int index) const</td></tr><tr><td>&nbsp;</td><td><font size=-1><em>Return a handle to the "index" child with the given name.</em> <a href="#a7"></a><em></em></font><br><br></td></tr><tr><td nowrap align=right valign=top>TiXmlHandle&nbsp;</td><td valign=bottom><a class="el" href="classTiXmlHandle.html#a8">Child</a> (int index) const</td></tr><tr><td>&nbsp;</td><td><font size=-1><em>Return a handle to the "index" child.</em> <a href="#a8"></a><em></em></font><br><br></td></tr><tr><td nowrap align=right valign=top>TiXmlHandle&nbsp;</td><td valign=bottom><a class="el" href="classTiXmlHandle.html#a9">ChildElement</a> (const char *value, int index) const</td></tr><tr><td>&nbsp;</td><td><font size=-1><em>Return a handle to the "index" child element with the given name.</em> <a href="#a9"></a><em></em></font><br><br></td></tr><tr><td nowrap align=right valign=top>TiXmlHandle&nbsp;</td><td valign=bottom><a class="el" href="classTiXmlHandle.html#a10">ChildElement</a> (int index) const</td></tr><tr><td>&nbsp;</td><td><font size=-1><em>Return a handle to the "index" child element.</em> <a href="#a10"></a><em></em></font><br><br></td></tr><tr><td nowrap align=right valign=top><a name="a15" doxytag="TiXmlHandle::Node"></a><a class="el" href="classTiXmlNode.html">TiXmlNode</a> *&nbsp;</td><td valign=bottom><a class="el" href="classTiXmlHandle.html#a15">Node</a> () const</td></tr><tr><td>&nbsp;</td><td><font size=-1><em>Return the handle as a <a class="el" href="classTiXmlNode.html">TiXmlNode</a>. This may return null.</em></font><br><br></td></tr><tr><td nowrap align=right valign=top><a name="a16" doxytag="TiXmlHandle::Element"></a><a class="el" href="classTiXmlElement.html">TiXmlElement</a> *&nbsp;</td><td valign=bottom><a class="el" href="classTiXmlHandle.html#a16">Element</a> () const</td></tr><tr><td>&nbsp;</td><td><font size=-1><em>Return the handle as a <a class="el" href="classTiXmlElement.html">TiXmlElement</a>. This may return null.</em></font><br><br></td></tr><tr><td nowrap align=right valign=top><a name="a17" doxytag="TiXmlHandle::Text"></a><a class="el" href="classTiXmlText.html">TiXmlText</a> *&nbsp;</td><td valign=bottom><a class="el" href="classTiXmlHandle.html#a17">Text</a> () const</td></tr><tr><td>&nbsp;</td><td><font size=-1><em>Return the handle as a <a class="el" href="classTiXmlText.html">TiXmlText</a>. This may return null.</em></font><br><br></td></tr><tr><td nowrap align=right valign=top><a name="a18" doxytag="TiXmlHandle::Unknown"></a><a class="el" href="classTiXmlUnknown.html">TiXmlUnknown</a> *&nbsp;</td><td valign=bottom><a class="el" href="classTiXmlHandle.html#a18">Unknown</a> () const</td></tr><tr><td>&nbsp;</td><td><font size=-1><em>Return the handle as a <a class="el" href="classTiXmlUnknown.html">TiXmlUnknown</a>. This may return null;.</em></font><br><br></td></tr></table><hr><a name="_details"></a><h2>Detailed Description</h2>A TiXmlHandle is a class that wraps a node pointer with null checks; this is an incredibly useful thing.<p>Note that TiXmlHandle is not part of the TinyXml DOM structure. It is a separate utility class.<p>Take an example: <div class="fragment"><pre>    &lt;Document&gt;        &lt;Element attributeA = "valueA"&gt;            &lt;Child attributeB = "value1" /&gt;            &lt;Child attributeB = "value2" /&gt;        &lt;/Element&gt;    &lt;Document&gt;    </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><div class="fragment"><pre>    TiXmlElement* root = document.FirstChildElement( "Document" );    if ( root )    {        TiXmlElement* element = root-&gt;FirstChildElement( "Element" );        if ( element )        {            TiXmlElement* child = element-&gt;FirstChildElement( "Child" );            if ( child )            {                TiXmlElement* child2 = child-&gt;NextSiblingElement( "Child" );                if ( child2 )                {                    // Finally do something useful.    </pre></div><p>And that doesn't even cover "else" cases. TiXmlHandle addresses the verbosity of such code. A TiXmlHandle checks for null pointers so it is perfectly safe  and correct to use:<p><div class="fragment"><pre>    TiXmlHandle docHandle( &amp;document );    TiXmlElement* child2 = docHandle.FirstChild( "Document" ).FirstChild( "Element" ).Child( "Child", 1 ).Element();    if ( child2 )    {        // do something useful    </pre></div><p>Which is MUCH more concise and useful.<p>It is also safe to copy handles - internally they are nothing more than node pointers. <div class="fragment"><pre>    TiXmlHandle handleCopy = handle;    </pre></div><p>What they should not be used for is iteration:<p><div class="fragment"><pre>    int i=0;     while ( true )    {        TiXmlElement* child = docHandle.FirstChild( "Document" ).FirstChild( "Element" ).Child( "Child", i ).Element();        if ( !child )            break;        // do something        ++i;    }    </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><div class="fragment"><pre>    TiXmlElement* child = docHandle.FirstChild( "Document" ).FirstChild( "Element" ).FirstChild( "Child" ).Element();    for( child; child; child=child-&gt;NextSiblingElement() )    {        // do something    }    </pre></div> <p><hr><h2>Member Function Documentation</h2><a name="a8" doxytag="TiXmlHandle::Child"></a><p><table width="100%" cellpadding="2" cellspacing="0" border="0">  <tr>    <td class="md">      <table cellpadding="0" cellspacing="0" border="0">        <tr>          <td class="md" nowrap valign="top"> TiXmlHandle TiXmlHandle::Child </td>          <td class="md" valign="top">(&nbsp;</td>          <td class="md" nowrap valign="top">int&nbsp;</td>          <td class="mdname1" valign="top" nowrap>&nbsp; <em>index</em>          </td>          <td class="md" valign="top">)&nbsp;</td>          <td class="md" nowrap> const</td>        </tr>      </table>    </td>  </tr></table><table cellspacing=5 cellpadding=0 border=0>  <tr>    <td>      &nbsp;    </td>    <td><p>Return a handle to the "index" child.<p>The first child is 0, the second 1, etc.     </td>  </tr></table><a name="a7" doxytag="TiXmlHandle::Child"></a><p><table width="100%" cellpadding="2" cellspacing="0" border="0">  <tr>    <td class="md">      <table cellpadding="0" cellspacing="0" border="0">        <tr>          <td class="md" nowrap valign="top"> TiXmlHandle TiXmlHandle::Child </td>          <td class="md" valign="top">(&nbsp;</td>          <td class="md" nowrap valign="top">const char *&nbsp;</td>          <td class="mdname" nowrap>&nbsp; <em>value</em>, </td>        </tr>        <tr>          <td></td>          <td></td>          <td class="md" nowrap>int&nbsp;</td>          <td class="mdname" nowrap>&nbsp; <em>index</em></td>        </tr>        <tr>          <td></td>          <td class="md">)&nbsp;</td>          <td class="md" colspan="2"> const</td>        </tr>      </table>    </td>  </tr></table><table cellspacing=5 cellpadding=0 border=0>  <tr>    <td>      &nbsp;    </td>    <td><p>Return a handle to the "index" child with the given name.<p>The first child is 0, the second 1, etc.     </td>  </tr></table><a name="a10" doxytag="TiXmlHandle::ChildElement"></a><p><table width="100%" cellpadding="2" cellspacing="0" border="0">  <tr>    <td class="md">      <table cellpadding="0" cellspacing="0" border="0">        <tr>          <td class="md" nowrap valign="top"> TiXmlHandle TiXmlHandle::ChildElement </td>          <td class="md" valign="top">(&nbsp;</td>          <td class="md" nowrap valign="top">int&nbsp;</td>          <td class="mdname1" valign="top" nowrap>&nbsp; <em>index</em>          </td>          <td class="md" valign="top">)&nbsp;</td>          <td class="md" nowrap> const</td>        </tr>      </table>    </td>  </tr></table><table cellspacing=5 cellpadding=0 border=0>  <tr>    <td>      &nbsp;    </td>    <td><p>Return a handle to the "index" child element.<p>The first child element is 0, the second 1, etc. Note that only TiXmlElements are indexed: other types are not counted.     </td>  </tr></table><a name="a9" doxytag="TiXmlHandle::ChildElement"></a><p><table width="100%" cellpadding="2" cellspacing="0" border="0">  <tr>    <td class="md">      <table cellpadding="0" cellspacing="0" border="0">        <tr>          <td class="md" nowrap valign="top"> TiXmlHandle TiXmlHandle::ChildElement </td>          <td class="md" valign="top">(&nbsp;</td>          <td class="md" nowrap valign="top">const char *&nbsp;</td>          <td class="mdname" nowrap>&nbsp; <em>value</em>, </td>        </tr>        <tr>          <td></td>          <td></td>          <td class="md" nowrap>int&nbsp;</td>          <td class="mdname" nowrap>&nbsp; <em>index</em></td>        </tr>        <tr>          <td></td>          <td class="md">)&nbsp;</td>          <td class="md" colspan="2"> const</td>        </tr>      </table>    </td>  </tr></table><table cellspacing=5 cellpadding=0 border=0>  <tr>    <td>      &nbsp;    </td>    <td><p>Return a handle to the "index" child element with the given name.<p>The first child element is 0, the second 1, etc. Note that only TiXmlElements are indexed: other types are not counted.     </td>  </tr></table><hr>The documentation for this class was generated from the following file:<ul><li><a class="el" href="tinyxml_8h-source.html">tinyxml.h</a></ul><hr><address style="align: right;"><small>Generated on Sun Aug 1 12:06:34 2004 for TinyXml by<a href="http://www.doxygen.org/index.html"><img src="doxygen.png" alt="doxygen" align="middle" border=0 width=110 height=53></a>1.2.18 </small></address></body></html>

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -