<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="en-US">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=11"/>
<meta name="generator" content="Doxygen 1.10.0"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>TinyXML-2: Class Members</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<script type="text/javascript" src="clipboard.js"></script>
<script type="text/javascript" src="cookie.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
 <tbody>
 <tr id="projectrow">
  <td id="projectalign">
   <div id="projectname">TinyXML-2<span id="projectnumber">&#160;10.0.0</span>
   </div>
  </td>
 </tr>
 </tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.10.0 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
var searchBox = new SearchBox("searchBox", "search/",'.html');
/* @license-end */
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(function() {
  initMenu('',true,false,'search.php','Search');
  $(function() { init_search(); });
});
/* @license-end */
</script>
<div id="main-nav"></div>
</div><!-- top -->
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
     onmouseover="return searchBox.OnSearchSelectShow()"
     onmouseout="return searchBox.OnSearchSelectHide()"
     onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>

<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<div id="MSearchResults">
<div class="SRPage">
<div id="SRIndex">
<div id="SRResults"></div>
<div class="SRStatus" id="Loading">Loading...</div>
<div class="SRStatus" id="Searching">Searching...</div>
<div class="SRStatus" id="NoMatches">No Matches</div>
</div>
</div>
</div>
</div>

<div class="contents">
<div class="textblock">Here is a list of all documented class members with links to the class documentation for each member:</div>

<h3><a id="index_s" name="index_s"></a>- s -</h3><ul>
<li>SaveFile()&#160;:&#160;<a class="el" href="classtinyxml2_1_1_x_m_l_document.html#a73ac416b4a2aa0952e841220eb3da18f">tinyxml2::XMLDocument</a></li>
<li>SetAttribute()&#160;:&#160;<a class="el" href="classtinyxml2_1_1_x_m_l_attribute.html#a406d2c4a13c7af99a65edb59dd9f7581">tinyxml2::XMLAttribute</a>, <a class="el" href="classtinyxml2_1_1_x_m_l_element.html#a11943abf2d0831548c3790dd5d9f119c">tinyxml2::XMLElement</a></li>
<li>SetBOM()&#160;:&#160;<a class="el" href="classtinyxml2_1_1_x_m_l_document.html#a14419b698f7c4b140df4e80f3f0c93b0">tinyxml2::XMLDocument</a></li>
<li>SetCData()&#160;:&#160;<a class="el" href="classtinyxml2_1_1_x_m_l_text.html#ad080357d76ab7cc59d7651249949329d">tinyxml2::XMLText</a></li>
<li>SetName()&#160;:&#160;<a class="el" href="classtinyxml2_1_1_x_m_l_element.html#a97712009a530d8cb8a63bf705f02b4f1">tinyxml2::XMLElement</a></li>
<li>SetText()&#160;:&#160;<a class="el" href="classtinyxml2_1_1_x_m_l_element.html#a1f9c2cd61b72af5ae708d37b7ad283ce">tinyxml2::XMLElement</a></li>
<li>SetUserData()&#160;:&#160;<a class="el" href="classtinyxml2_1_1_x_m_l_node.html#a002978fc889cc011d143185f2377eca2">tinyxml2::XMLNode</a></li>
<li>SetValue()&#160;:&#160;<a class="el" href="classtinyxml2_1_1_x_m_l_node.html#a09dd68cf9eae137579f6e50f36487513">tinyxml2::XMLNode</a></li>
<li>ShallowClone()&#160;:&#160;<a class="el" href="classtinyxml2_1_1_x_m_l_comment.html#a5396d702a6ca251ee1493707a3ac6086">tinyxml2::XMLComment</a>, <a class="el" href="classtinyxml2_1_1_x_m_l_declaration.html#a0e1151bfb4c2a42ed8a1991169cbc59e">tinyxml2::XMLDeclaration</a>, <a class="el" href="classtinyxml2_1_1_x_m_l_document.html#a01ab2fc16fbce5f4456d67d24090e70b">tinyxml2::XMLDocument</a>, <a class="el" href="classtinyxml2_1_1_x_m_l_element.html#a6dc4d8774d1e77a8c37a7b3d039d3049">tinyxml2::XMLElement</a>, <a class="el" href="classtinyxml2_1_1_x_m_l_node.html#a9046880c05b81ad99ee645f4b2a53ecd">tinyxml2::XMLNode</a>, <a class="el" href="classtinyxml2_1_1_x_m_l_text.html#a277bbcf2e0e1326ca7f6f7c4d0820bb0">tinyxml2::XMLText</a>, <a class="el" href="classtinyxml2_1_1_x_m_l_unknown.html#a5ffeb6cd9e55008ebc160c1ceb4115ec">tinyxml2::XMLUnknown</a></li>
<li>ShallowEqual()&#160;:&#160;<a class="el" href="classtinyxml2_1_1_x_m_l_comment.html#a5d905bdee77945cf8473987911fbe581">tinyxml2::XMLComment</a>, <a class="el" href="classtinyxml2_1_1_x_m_l_declaration.html#a125d70baaba44a55c2f10e185f70d478">tinyxml2::XMLDeclaration</a>, <a class="el" href="classtinyxml2_1_1_x_m_l_document.html#ac538345c44f521e418ff86b4bdc20ca8">tinyxml2::XMLDocument</a>, <a class="el" href="classtinyxml2_1_1_x_m_l_element.html#aaba88737610559755425b8a59179817e">tinyxml2::XMLElement</a>, <a class="el" href="classtinyxml2_1_1_x_m_l_node.html#a7ce18b751c3ea09eac292dca264f9226">tinyxml2::XMLNode</a>, <a class="el" href="classtinyxml2_1_1_x_m_l_text.html#a032269f8d4d0357912fcb9bdc796f50c">tinyxml2::XMLText</a>, <a class="el" href="classtinyxml2_1_1_x_m_l_unknown.html#a300a119859a7c25a64f400c16535d8b4">tinyxml2::XMLUnknown</a></li>
</ul>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated on Sat Dec 30 2023 18:02:36 for TinyXML-2 by&#160;<a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.10.0
</small></address>
</body>
</html>
