41 Commits
6.0.0 ... 6.2.0

Author SHA1 Message Date
Lee Thomason
c1424ee4e1 setting the version to 6.2.0 2018-04-05 23:09:23 -07:00
Lee Thomason
b94eefc7a1 Merge pull request #669 from leethomason/overflow
Fix stack overflows
2018-04-05 22:56:48 -07:00
Lee Thomason
e2d02e1623 and the same fix in the test case 2018-04-05 15:57:48 -07:00
Lee Thomason
befc3c3ae7 fix compiler inconsistency 2018-04-05 15:53:14 -07:00
Lee Thomason
f928c35186 clean up the depth tracking a bit 2018-04-05 09:24:20 -07:00
Lee Thomason
d946ddadc2 upgrade to vs2017. fix stack overflow attack. 2018-04-05 09:11:08 -07:00
Lee Thomason
65b5366a02 Merge pull request #667 from Dmitry-Me/simplifyToUnknownTests
Simplify checks
2018-03-23 12:02:55 -07:00
Lee Thomason
e59e3c3460 Merge pull request #668 from Dmitry-Me/improveDeclarationTestMessage
Improve test message to avoid duplicate log output
2018-03-23 11:26:06 -07:00
Lee Thomason
7dd295609c Merge pull request #666 from Dmitry-Me/clarifyErrorNameTests
Cleanup ErrorName() tests
2018-03-23 11:25:43 -07:00
Dmitry-Me
6a18a3105c Improve test message to avoid duplicate log output 2018-03-23 21:09:13 +03:00
Dmitry-Me
f5af951f1d Simplify checks 2018-03-23 21:01:25 +03:00
Dmitry-Me
95f687b1f1 Cleanup ErrorName() tests
* clarify what is being tested to avoid duplicate lines in output
* prevent optimizations based on undefined behavior
2018-03-23 20:56:46 +03:00
Lee Thomason
0741941589 Merge pull request #662 from mschmieder/fix_testrun_windows
fixed issue where CTest is executed in the wrong directory
2018-03-23 09:54:21 -07:00
Lee Thomason
00b74a40b5 Merge pull request #657 from noloader/master
Add install and uninstall target to Makefile
2018-03-23 09:48:51 -07:00
Lee Thomason
72407d2050 Merge pull request #663 from Dmitry-Me/clarifyHandlesTests
Improve handles tests
2018-03-23 09:31:54 -07:00
Dmitry-Me
938560f9f0 Improve handles tests 2018-03-15 01:30:39 +03:00
mschmieder
3c9370561c fixed issue where CTest is executed in the wrong directory 2018-03-08 08:31:12 +01:00
Lee Thomason
0bb8767e37 Merge pull request #656 from Gumichan01/master
fix "dereference before null check" defect
2018-02-24 17:38:22 -08:00
Lee Thomason
51a1d1c937 Merge pull request #653 from fcami/master
fix installation path for *.cmake
2018-02-24 17:32:46 -08:00
Jeffrey Walton
ff75430374 Fix typo in permissions 2018-02-05 08:00:08 -05:00
Jeffrey Walton
5dd529236b Add install and uninstall target to Makefile
This PR closes some gaps in the makefile. It follows GNU coding standards and conventions at https://www.gnu.org/prep/standards/standards.html. It is not specific to GNU, and most of the world follows it.
2018-02-05 06:19:36 -05:00
Gumichan01
0f1fa6d271 fix "dereference before null check" defect
See issue #654
2018-02-01 14:27:43 +01:00
François Cami
59785ec384 fix installation path for *.cmake 2018-01-22 23:58:42 +01:00
Lee Thomason
cc1745b552 Merge pull request #649 from PeterMatula/rename-DEBUG-define
rename DEBUG define to TINYXML2_DEBUG
2018-01-18 15:20:59 -08:00
Lee Thomason
dc75a362cb Merge pull request #648 from Dmitry-Me/removeUnneededConversions
Remove unneeded conversions
2018-01-11 16:07:12 -08:00
Peter Matula
50689919b7 rename DEBUG define to TINYXML2_DEBUG
The original name is to general. This prevents possible name collisions with other defines, enums, etc. from projects where tinyxml2 is used.
2018-01-09 12:52:26 +01:00
Dmitry-Me
63d8de6278 Remove unneeded conversions 2018-01-09 00:20:45 +03:00
Lee Thomason
703f91e6b8 Merge pull request #643 from leethomason/querystring
QueryStringAttribute
2018-01-05 10:32:18 -08:00
Lee Thomason
c8593733a2 Merge pull request #641 from leethomason/error-str
Fixes output of simple error messages
2018-01-05 10:30:25 -08:00
Lee Thomason
588e4ef8a9 Merge pull request #639 from zyndor/DEV_PremakeBuilds
Added premake5 build configuration with projects for Windows & Mac.
2018-01-05 10:28:16 -08:00
Lee Thomason
f26a547fdc sync the version 2017-12-29 09:30:39 -08:00
Lee Thomason
28f9a48d5e Merge branch 'master' into querystring 2017-12-29 09:13:50 -08:00
Lee Thomason
f6dc9be122 merge master 2017-12-29 09:13:15 -08:00
Lee Thomason
ff97dbb2cc Merge branch 'master' into error-str 2017-12-29 09:11:27 -08:00
Lee Thomason
5b00e0662f add query string method 2017-12-28 14:07:47 -08:00
Lee Thomason
a36f7ac776 fix error string output when there is no formatting 2017-12-28 13:48:54 -08:00
Lee Thomason
bd197877ca write the version number as a macro 2017-12-28 13:31:48 -08:00
György Straub
c9e3b52745 Added premake5 build configuration with projects for Windows & Mac.
- updated .gitignore with the .projects / .artifacts directories.
2017-12-26 15:47:50 +00:00
Lee Thomason
e1b50439c9 remove dead files 2017-12-10 20:05:30 -08:00
Lee Thomason
cf1006943b tweaking docs 2017-12-10 20:03:39 -08:00
Lee Thomason
71b12596eb update the docs 2017-12-10 19:59:58 -08:00
65 changed files with 684 additions and 389 deletions

4
.gitignore vendored
View File

@@ -7,6 +7,8 @@ tinyxml2/tinyxml2-cbp/bin/
tinyxml2/tinyxml2-cbp/obj/
tinyxml2/bin/
tinyxml2/temp/
.artifacts/
.projects/
*.sdf
*.suo
*.opensdf
@@ -15,4 +17,4 @@ tinyxml2/temp/
*.layout
*.o
*.vc.db
*.vc.opendb
*.vc.opendb

View File

@@ -21,13 +21,13 @@ include(CTest)
################################
# set lib version here
set(GENERIC_LIB_VERSION "6.0.0")
set(GENERIC_LIB_VERSION "6.2.0")
set(GENERIC_LIB_SOVERSION "6")
################################
# Add definitions
set(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} -DDEBUG")
set(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} -DTINYXML2_DEBUG")
################################
# Add targets
@@ -138,7 +138,7 @@ if(BUILD_TESTING AND BUILD_TESTS)
COMMENT "Configuring xmltest resources directory: ${CMAKE_BINARY_DIR}/resources"
)
add_test(NAME xmltest COMMAND xmltest)
add_test(NAME xmltest COMMAND xmltest WORKING_DIRECTORY $<TARGET_FILE_DIR:xmltest>)
endif()
install(FILES tinyxml2.h DESTINATION ${CMAKE_INSTALL_INCLUDEDIR})
@@ -170,7 +170,7 @@ file(WRITE
install(FILES
${CMAKE_BINARY_DIR}/${CMAKE_PROJECT_NAME}Config.cmake
DESTINATION lib/cmake/${CMAKE_PROJECT_NAME})
DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/${CMAKE_PROJECT_NAME})
install(EXPORT ${CMAKE_PROJECT_NAME}Targets
DESTINATION lib/cmake/${CMAKE_PROJECT_NAME})
DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/${CMAKE_PROJECT_NAME})

View File

@@ -1,3 +1,25 @@
# For GNU conventions and targets see https://www.gnu.org/prep/standards/standards.html
# Using GNU standards makes it easier for some users to keep doing what they are used to.
# 'mkdir -p' is non-portable, but it is widely supported. A portable solution
# is elusive due to race conditions on testing the directory and creating it.
# Anemic toolchain users can sidestep the problem using MKDIR="mkdir".
AR = ar
ARFLAGS = cr
RM = rm -f
RANLIB = ranlib
MKDIR = mkdir -p
INSTALL = install
INSTALL_PROGRAM = $(INSTALL)
INSTALL_DATA = $(INSTALL) -m 644
prefix = /usr/local
bindir = $(prefix)/bin
libdir = $(prefix)/lib
includedir = $(prefix)/include
all: xmltest staticlib
rebuild: clean all
@@ -12,15 +34,41 @@ effc:
-Wno-unused-parameter -Weffc++ xmltest.cpp tinyxml2.cpp -o xmltest
clean:
$(RM) *.o xmltest libtinyxml2.a
-$(RM) *.o xmltest libtinyxml2.a
# Standard GNU target
distclean:
-$(RM) *.o xmltest libtinyxml2.a
test: clean xmltest
./xmltest
# Standard GNU target
check: clean xmltest
./xmltest
staticlib: libtinyxml2.a
libtinyxml2.a: tinyxml2.o
$(AR) $(ARFLAGS)s $@ $^
$(AR) $(ARFLAGS) $@ $^
$(RANLIB) $@
tinyxml2.o: tinyxml2.cpp tinyxml2.h
directories:
$(MKDIR) $(DESTDIR)$(prefix)
$(MKDIR) $(DESTDIR)$(bindir)
$(MKDIR) $(DESTDIR)$(libdir)
$(MKDIR) $(DESTDIR)$(includedir)
# Standard GNU target.
install: xmltest staticlib directories
$(INSTALL_PROGRAM) xmltest $(DESTDIR)$(bindir)/xmltest
$(INSTALL_DATA) tinyxml2.h $(DESTDIR)$(includedir)/tinyxml2.h
$(INSTALL_DATA) libtinyxml2.a $(DESTDIR)$(libdir)/libtinyxml2.a
# Standard GNU target
uninstall:
$(RM) $(DESTDIR)$(bindir)/xmltest
$(RM) $(DESTDIR)$(includedir)/tinyxml2.h
$(RM) $(DESTDIR)$(libdir)/libtinyxml2.a

View File

@@ -22,7 +22,7 @@
<tr style="height: 56px;">
<td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">TinyXML-2
&#160;<span id="projectnumber">5.0.1</span>
&#160;<span id="projectnumber">6.0.0</span>
</div>
</td>
</tr>
@@ -67,7 +67,7 @@ $(function() {
</div></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated on Sat Jul 15 2017 19:39:36 for TinyXML-2 by &#160;<a href="http://www.doxygen.org/index.html">
Generated on Sun Dec 10 2017 20:04:44 for TinyXML-2 by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.13
</small></address>

View File

@@ -22,7 +22,7 @@
<tr style="height: 56px;">
<td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">TinyXML-2
&#160;<span id="projectnumber">5.0.1</span>
&#160;<span id="projectnumber">6.0.0</span>
</div>
</td>
</tr>
@@ -67,7 +67,7 @@ $(function() {
</div></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated on Sat Jul 15 2017 19:39:36 for TinyXML-2 by &#160;<a href="http://www.doxygen.org/index.html">
Generated on Sun Dec 10 2017 20:04:44 for TinyXML-2 by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.13
</small></address>

View File

@@ -22,7 +22,7 @@
<tr style="height: 56px;">
<td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">TinyXML-2
&#160;<span id="projectnumber">5.0.1</span>
&#160;<span id="projectnumber">6.0.0</span>
</div>
</td>
</tr>
@@ -96,7 +96,7 @@ Text "A Midsummer Night's Dream" </li>
</div></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated on Sat Jul 15 2017 19:39:36 for TinyXML-2 by &#160;<a href="http://www.doxygen.org/index.html">
Generated on Sun Dec 10 2017 20:04:44 for TinyXML-2 by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.13
</small></address>

View File

@@ -22,7 +22,7 @@
<tr style="height: 56px;">
<td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">TinyXML-2
&#160;<span id="projectnumber">5.0.1</span>
&#160;<span id="projectnumber">6.0.0</span>
</div>
</td>
</tr>
@@ -73,7 +73,7 @@ $(function() {
</div></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated on Sat Jul 15 2017 19:39:36 for TinyXML-2 by &#160;<a href="http://www.doxygen.org/index.html">
Generated on Sun Dec 10 2017 20:04:44 for TinyXML-2 by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.13
</small></address>

View File

@@ -22,7 +22,7 @@
<tr style="height: 56px;">
<td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">TinyXML-2
&#160;<span id="projectnumber">5.0.1</span>
&#160;<span id="projectnumber">6.0.0</span>
</div>
</td>
</tr>
@@ -83,7 +83,7 @@ $(function() {
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated on Sat Jul 15 2017 19:39:36 for TinyXML-2 by &#160;<a href="http://www.doxygen.org/index.html">
Generated on Sun Dec 10 2017 20:04:44 for TinyXML-2 by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.13
</small></address>

View File

@@ -22,7 +22,7 @@
<tr style="height: 56px;">
<td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">TinyXML-2
&#160;<span id="projectnumber">5.0.1</span>
&#160;<span id="projectnumber">6.0.0</span>
</div>
</td>
</tr>
@@ -75,7 +75,7 @@ $(function() {
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated on Sat Jul 15 2017 19:39:36 for TinyXML-2 by &#160;<a href="http://www.doxygen.org/index.html">
Generated on Sun Dec 10 2017 20:04:44 for TinyXML-2 by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.13
</small></address>

View File

@@ -22,7 +22,7 @@
<tr style="height: 56px;">
<td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">TinyXML-2
&#160;<span id="projectnumber">5.0.1</span>
&#160;<span id="projectnumber">6.0.0</span>
</div>
</td>
</tr>
@@ -95,7 +95,7 @@ $(function() {
</table></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated on Sat Jul 15 2017 19:39:36 for TinyXML-2 by &#160;<a href="http://www.doxygen.org/index.html">
Generated on Sun Dec 10 2017 20:04:44 for TinyXML-2 by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.13
</small></address>

View File

@@ -22,7 +22,7 @@
<tr style="height: 56px;">
<td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">TinyXML-2
&#160;<span id="projectnumber">5.0.1</span>
&#160;<span id="projectnumber">6.0.0</span>
</div>
</td>
</tr>
@@ -215,7 +215,7 @@ void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="clas
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated on Sat Jul 15 2017 19:39:36 for TinyXML-2 by &#160;<a href="http://www.doxygen.org/index.html">
Generated on Sun Dec 10 2017 20:04:44 for TinyXML-2 by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.13
</small></address>

View File

@@ -22,7 +22,7 @@
<tr style="height: 56px;">
<td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">TinyXML-2
&#160;<span id="projectnumber">5.0.1</span>
&#160;<span id="projectnumber">6.0.0</span>
</div>
</td>
</tr>
@@ -105,7 +105,7 @@ $(function() {
</table></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated on Sat Jul 15 2017 19:39:36 for TinyXML-2 by &#160;<a href="http://www.doxygen.org/index.html">
Generated on Sun Dec 10 2017 20:04:44 for TinyXML-2 by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.13
</small></address>

View File

@@ -22,7 +22,7 @@
<tr style="height: 56px;">
<td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">TinyXML-2
&#160;<span id="projectnumber">5.0.1</span>
&#160;<span id="projectnumber">6.0.0</span>
</div>
</td>
</tr>
@@ -292,7 +292,7 @@ const char* xmlcstr = printer.CStr();
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated on Sat Jul 15 2017 19:39:36 for TinyXML-2 by &#160;<a href="http://www.doxygen.org/index.html">
Generated on Sun Dec 10 2017 20:04:44 for TinyXML-2 by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.13
</small></address>

View File

@@ -22,7 +22,7 @@
<tr style="height: 56px;">
<td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">TinyXML-2
&#160;<span id="projectnumber">5.0.1</span>
&#160;<span id="projectnumber">6.0.0</span>
</div>
</td>
</tr>
@@ -73,7 +73,7 @@ $(function() {
</table></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated on Sat Jul 15 2017 19:39:36 for TinyXML-2 by &#160;<a href="http://www.doxygen.org/index.html">
Generated on Sun Dec 10 2017 20:04:44 for TinyXML-2 by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.13
</small></address>

View File

@@ -22,7 +22,7 @@
<tr style="height: 56px;">
<td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">TinyXML-2
&#160;<span id="projectnumber">5.0.1</span>
&#160;<span id="projectnumber">6.0.0</span>
</div>
</td>
</tr>
@@ -79,7 +79,7 @@ $(function() {
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated on Sat Jul 15 2017 19:39:36 for TinyXML-2 by &#160;<a href="http://www.doxygen.org/index.html">
Generated on Sun Dec 10 2017 20:04:44 for TinyXML-2 by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.13
</small></address>

View File

@@ -22,7 +22,7 @@
<tr style="height: 56px;">
<td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">TinyXML-2
&#160;<span id="projectnumber">5.0.1</span>
&#160;<span id="projectnumber">6.0.0</span>
</div>
</td>
</tr>
@@ -105,7 +105,7 @@ $(function() {
</table></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated on Sat Jul 15 2017 19:39:36 for TinyXML-2 by &#160;<a href="http://www.doxygen.org/index.html">
Generated on Sun Dec 10 2017 20:04:44 for TinyXML-2 by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.13
</small></address>

View File

@@ -22,7 +22,7 @@
<tr style="height: 56px;">
<td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">TinyXML-2
&#160;<span id="projectnumber">5.0.1</span>
&#160;<span id="projectnumber">6.0.0</span>
</div>
</td>
</tr>
@@ -294,7 +294,7 @@ const char* xmlcstr = printer.CStr();
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated on Sat Jul 15 2017 19:39:36 for TinyXML-2 by &#160;<a href="http://www.doxygen.org/index.html">
Generated on Sun Dec 10 2017 20:04:44 for TinyXML-2 by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.13
</small></address>

View File

@@ -22,7 +22,7 @@
<tr style="height: 56px;">
<td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">TinyXML-2
&#160;<span id="projectnumber">5.0.1</span>
&#160;<span id="projectnumber">6.0.0</span>
</div>
</td>
</tr>
@@ -73,63 +73,62 @@ $(function() {
<tr class="even"><td class="entry"><a class="el" href="classtinyxml2_1_1_x_m_l_document.html#a9efa54f7ecb37c17ab1fa2b3078ccca1">Accept</a>(XMLVisitor *visitor) const</td><td class="entry"><a class="el" href="classtinyxml2_1_1_x_m_l_document.html">tinyxml2::XMLDocument</a></td><td class="entry"><span class="mlabel">virtual</span></td></tr>
<tr><td class="entry"><a class="el" href="classtinyxml2_1_1_x_m_l_document.html#a65656b0b2cbc822708eb351504178aaf">Clear</a>()</td><td class="entry"><a class="el" href="classtinyxml2_1_1_x_m_l_document.html">tinyxml2::XMLDocument</a></td><td class="entry"></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classtinyxml2_1_1_x_m_l_node.html#a62c71b6bf8734b5424063b8d9a61c266">DeepClone</a>(XMLDocument *target) const</td><td class="entry"><a class="el" href="classtinyxml2_1_1_x_m_l_node.html">tinyxml2::XMLNode</a></td><td class="entry"></td></tr>
<tr><td class="entry"><a class="el" href="classtinyxml2_1_1_x_m_l_document.html#aab792e90adc38cdc5446616573b8b01b">DeepCopy</a>(XMLDocument *target)</td><td class="entry"><a class="el" href="classtinyxml2_1_1_x_m_l_document.html">tinyxml2::XMLDocument</a></td><td class="entry"></td></tr>
<tr><td class="entry"><a class="el" href="classtinyxml2_1_1_x_m_l_document.html#af592ffc91514e25a39664521ac83db45">DeepCopy</a>(XMLDocument *target) const</td><td class="entry"><a class="el" href="classtinyxml2_1_1_x_m_l_document.html">tinyxml2::XMLDocument</a></td><td class="entry"></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classtinyxml2_1_1_x_m_l_node.html#a363b6edbd6ebd55f8387d2b89f2b0921">DeleteChild</a>(XMLNode *node)</td><td class="entry"><a class="el" href="classtinyxml2_1_1_x_m_l_node.html">tinyxml2::XMLNode</a></td><td class="entry"></td></tr>
<tr><td class="entry"><a class="el" href="classtinyxml2_1_1_x_m_l_node.html#a0360085cc54df5bff85d5c5da13afdce">DeleteChildren</a>()</td><td class="entry"><a class="el" href="classtinyxml2_1_1_x_m_l_node.html">tinyxml2::XMLNode</a></td><td class="entry"></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classtinyxml2_1_1_x_m_l_document.html#ac1d6e2c7fcc1a660624ac4f68e96380d">DeleteNode</a>(XMLNode *node)</td><td class="entry"><a class="el" href="classtinyxml2_1_1_x_m_l_document.html">tinyxml2::XMLDocument</a></td><td class="entry"></td></tr>
<tr><td class="entry"><a class="el" href="classtinyxml2_1_1_x_m_l_document.html#a34e6318e182e40e3cc4f4ba5d59ed9ed">Error</a>() const</td><td class="entry"><a class="el" href="classtinyxml2_1_1_x_m_l_document.html">tinyxml2::XMLDocument</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classtinyxml2_1_1_x_m_l_document.html#afa3ed33b3107f920ec2b301f805ac17d">ErrorID</a>() const</td><td class="entry"><a class="el" href="classtinyxml2_1_1_x_m_l_document.html">tinyxml2::XMLDocument</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr><td class="entry"><a class="el" href="classtinyxml2_1_1_x_m_l_document.html#a57400f816dbe7799ece33615ead9ab76">ErrorLineNum</a>() const</td><td class="entry"><a class="el" href="classtinyxml2_1_1_x_m_l_document.html">tinyxml2::XMLDocument</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classtinyxml2_1_1_x_m_l_document.html#ad75aa9d32c4e8b300655186808aa9abf">ErrorStr</a>() const</td><td class="entry"><a class="el" href="classtinyxml2_1_1_x_m_l_document.html">tinyxml2::XMLDocument</a></td><td class="entry"></td></tr>
<tr><td class="entry"><a class="el" href="classtinyxml2_1_1_x_m_l_node.html#ae7dc225e1018cdd685f7563593a1fe08">FirstChild</a>() const</td><td class="entry"><a class="el" href="classtinyxml2_1_1_x_m_l_node.html">tinyxml2::XMLNode</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classtinyxml2_1_1_x_m_l_node.html#a1795a35852dc8aae877cc8ded986e59b">FirstChildElement</a>(const char *name=0) const</td><td class="entry"><a class="el" href="classtinyxml2_1_1_x_m_l_node.html">tinyxml2::XMLNode</a></td><td class="entry"></td></tr>
<tr><td class="entry"><a class="el" href="classtinyxml2_1_1_x_m_l_node.html#a2de84cfa4ec3fe249bad745069d145f1">GetDocument</a>() const</td><td class="entry"><a class="el" href="classtinyxml2_1_1_x_m_l_node.html">tinyxml2::XMLNode</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classtinyxml2_1_1_x_m_l_node.html#af343d1ef0b45c0020e62d784d7e67a68">GetDocument</a>()</td><td class="entry"><a class="el" href="classtinyxml2_1_1_x_m_l_node.html">tinyxml2::XMLNode</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr><td class="entry"><a class="el" href="classtinyxml2_1_1_x_m_l_document.html#ad82d07e43e096e834dbdfd06312398c1">GetErrorLineNum</a>() const</td><td class="entry"><a class="el" href="classtinyxml2_1_1_x_m_l_document.html">tinyxml2::XMLDocument</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classtinyxml2_1_1_x_m_l_document.html#a229494e30e5473237f3fa547eee4c43f">GetErrorStr1</a>() const</td><td class="entry"><a class="el" href="classtinyxml2_1_1_x_m_l_document.html">tinyxml2::XMLDocument</a></td><td class="entry"></td></tr>
<tr><td class="entry"><a class="el" href="classtinyxml2_1_1_x_m_l_document.html#a2d952f49c761bffd2903250680a8716b">GetErrorStr2</a>() const</td><td class="entry"><a class="el" href="classtinyxml2_1_1_x_m_l_document.html">tinyxml2::XMLDocument</a></td><td class="entry"></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classtinyxml2_1_1_x_m_l_node.html#a9b5fc636646fda761d342c72e91cb286">GetLineNum</a>() const</td><td class="entry"><a class="el" href="classtinyxml2_1_1_x_m_l_node.html">tinyxml2::XMLNode</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr><td class="entry"><a class="el" href="classtinyxml2_1_1_x_m_l_node.html#a7f0687574afa03bc479dc44f29db0afe">GetUserData</a>() const</td><td class="entry"><a class="el" href="classtinyxml2_1_1_x_m_l_node.html">tinyxml2::XMLNode</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classtinyxml2_1_1_x_m_l_document.html#a33fc5d159db873a179fa26338adb05bd">HasBOM</a>() const</td><td class="entry"><a class="el" href="classtinyxml2_1_1_x_m_l_document.html">tinyxml2::XMLDocument</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr><td class="entry"><a class="el" href="classtinyxml2_1_1_x_m_l_node.html#a85adb8f0b7477eec30f9a41d420b09c2">InsertAfterChild</a>(XMLNode *afterThis, XMLNode *addThis)</td><td class="entry"><a class="el" href="classtinyxml2_1_1_x_m_l_node.html">tinyxml2::XMLNode</a></td><td class="entry"></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classtinyxml2_1_1_x_m_l_node.html#aeb249ed60f4e8bfad3709151c3ee4286">InsertEndChild</a>(XMLNode *addThis)</td><td class="entry"><a class="el" href="classtinyxml2_1_1_x_m_l_node.html">tinyxml2::XMLNode</a></td><td class="entry"></td></tr>
<tr><td class="entry"><a class="el" href="classtinyxml2_1_1_x_m_l_node.html#a8ff7dc071f3a1a6ae2ac25a37492865d">InsertFirstChild</a>(XMLNode *addThis)</td><td class="entry"><a class="el" href="classtinyxml2_1_1_x_m_l_node.html">tinyxml2::XMLNode</a></td><td class="entry"></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classtinyxml2_1_1_x_m_l_node.html#a9b8583a277e8e26f4cbbb5492786778e">LastChild</a>() const</td><td class="entry"><a class="el" href="classtinyxml2_1_1_x_m_l_node.html">tinyxml2::XMLNode</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr><td class="entry"><a class="el" href="classtinyxml2_1_1_x_m_l_node.html#a173e9d1341bc56992e2d320a35936551">LastChildElement</a>(const char *name=0) const</td><td class="entry"><a class="el" href="classtinyxml2_1_1_x_m_l_node.html">tinyxml2::XMLNode</a></td><td class="entry"></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classtinyxml2_1_1_x_m_l_document.html#a2ebd4647a8af5fc6831b294ac26a150a">LoadFile</a>(const char *filename)</td><td class="entry"><a class="el" href="classtinyxml2_1_1_x_m_l_document.html">tinyxml2::XMLDocument</a></td><td class="entry"></td></tr>
<tr><td class="entry"><a class="el" href="classtinyxml2_1_1_x_m_l_document.html#a5f1d330fad44c52f3d265338dd2a6dc2">LoadFile</a>(FILE *)</td><td class="entry"><a class="el" href="classtinyxml2_1_1_x_m_l_document.html">tinyxml2::XMLDocument</a></td><td class="entry"></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classtinyxml2_1_1_x_m_l_document.html#ade4874bcb439954972ef2b3723ff3259">NewComment</a>(const char *comment)</td><td class="entry"><a class="el" href="classtinyxml2_1_1_x_m_l_document.html">tinyxml2::XMLDocument</a></td><td class="entry"></td></tr>
<tr><td class="entry"><a class="el" href="classtinyxml2_1_1_x_m_l_document.html#aee2eb3435923f5494dcc70ac225b60a2">NewDeclaration</a>(const char *text=0)</td><td class="entry"><a class="el" href="classtinyxml2_1_1_x_m_l_document.html">tinyxml2::XMLDocument</a></td><td class="entry"></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classtinyxml2_1_1_x_m_l_document.html#a8aa7817d4a1001364b06373763ab99d6">NewElement</a>(const char *name)</td><td class="entry"><a class="el" href="classtinyxml2_1_1_x_m_l_document.html">tinyxml2::XMLDocument</a></td><td class="entry"></td></tr>
<tr><td class="entry"><a class="el" href="classtinyxml2_1_1_x_m_l_document.html#ab7e8b29ae4099092a8bb947da6361296">NewText</a>(const char *text)</td><td class="entry"><a class="el" href="classtinyxml2_1_1_x_m_l_document.html">tinyxml2::XMLDocument</a></td><td class="entry"></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classtinyxml2_1_1_x_m_l_document.html#a5385c937734ff6db9226ab707d2c7147">NewUnknown</a>(const char *text)</td><td class="entry"><a class="el" href="classtinyxml2_1_1_x_m_l_document.html">tinyxml2::XMLDocument</a></td><td class="entry"></td></tr>
<tr><td class="entry"><a class="el" href="classtinyxml2_1_1_x_m_l_node.html#a79db9ef0fe014d27790f2218b87bcbb5">NextSibling</a>() const</td><td class="entry"><a class="el" href="classtinyxml2_1_1_x_m_l_node.html">tinyxml2::XMLNode</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classtinyxml2_1_1_x_m_l_node.html#a1264c86233328f0cd36297552d982f80">NextSiblingElement</a>(const char *name=0) const</td><td class="entry"><a class="el" href="classtinyxml2_1_1_x_m_l_node.html">tinyxml2::XMLNode</a></td><td class="entry"></td></tr>
<tr><td class="entry"><a class="el" href="classtinyxml2_1_1_x_m_l_node.html#ac3ab489e6e202a3cd1762d3b332e89d4">NoChildren</a>() const</td><td class="entry"><a class="el" href="classtinyxml2_1_1_x_m_l_node.html">tinyxml2::XMLNode</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classtinyxml2_1_1_x_m_l_node.html#ae0f62bc186c56c2e0483ebd52dbfbe34">Parent</a>() const</td><td class="entry"><a class="el" href="classtinyxml2_1_1_x_m_l_node.html">tinyxml2::XMLNode</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr><td class="entry"><a class="el" href="classtinyxml2_1_1_x_m_l_document.html#a1819bd34f540a7304c105a6232d25a1f">Parse</a>(const char *xml, size_t nBytes=(size_t)(-1))</td><td class="entry"><a class="el" href="classtinyxml2_1_1_x_m_l_document.html">tinyxml2::XMLDocument</a></td><td class="entry"></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classtinyxml2_1_1_x_m_l_node.html#aac667c513d445f8b783e1e15ef9d3551">PreviousSibling</a>() const</td><td class="entry"><a class="el" href="classtinyxml2_1_1_x_m_l_node.html">tinyxml2::XMLNode</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr><td class="entry"><a class="el" href="classtinyxml2_1_1_x_m_l_node.html#a872936cae46fb473eb47fec99129fc70">PreviousSiblingElement</a>(const char *name=0) const</td><td class="entry"><a class="el" href="classtinyxml2_1_1_x_m_l_node.html">tinyxml2::XMLNode</a></td><td class="entry"></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classtinyxml2_1_1_x_m_l_document.html#a867cf5fa3e3ff6ae4847a8b7ee8ec083">Print</a>(XMLPrinter *streamer=0) const</td><td class="entry"><a class="el" href="classtinyxml2_1_1_x_m_l_document.html">tinyxml2::XMLDocument</a></td><td class="entry"></td></tr>
<tr><td class="entry"><a class="el" href="classtinyxml2_1_1_x_m_l_document.html#a1d033945b42e125d933d6231e4571552">PrintError</a>() const</td><td class="entry"><a class="el" href="classtinyxml2_1_1_x_m_l_document.html">tinyxml2::XMLDocument</a></td><td class="entry"></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classtinyxml2_1_1_x_m_l_document.html#ad2b70320d3c2a071c2f36928edff3e1c">RootElement</a>()</td><td class="entry"><a class="el" href="classtinyxml2_1_1_x_m_l_document.html">tinyxml2::XMLDocument</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr><td class="entry"><a class="el" href="classtinyxml2_1_1_x_m_l_document.html#a73ac416b4a2aa0952e841220eb3da18f">SaveFile</a>(const char *filename, bool compact=false)</td><td class="entry"><a class="el" href="classtinyxml2_1_1_x_m_l_document.html">tinyxml2::XMLDocument</a></td><td class="entry"></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classtinyxml2_1_1_x_m_l_document.html#a8b95779479a0035acc67b3a61dfe1b74">SaveFile</a>(FILE *fp, bool compact=false)</td><td class="entry"><a class="el" href="classtinyxml2_1_1_x_m_l_document.html">tinyxml2::XMLDocument</a></td><td class="entry"></td></tr>
<tr><td class="entry"><a class="el" href="classtinyxml2_1_1_x_m_l_document.html#a14419b698f7c4b140df4e80f3f0c93b0">SetBOM</a>(bool useBOM)</td><td class="entry"><a class="el" href="classtinyxml2_1_1_x_m_l_document.html">tinyxml2::XMLDocument</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classtinyxml2_1_1_x_m_l_node.html#a002978fc889cc011d143185f2377eca2">SetUserData</a>(void *userData)</td><td class="entry"><a class="el" href="classtinyxml2_1_1_x_m_l_node.html">tinyxml2::XMLNode</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr><td class="entry"><a class="el" href="classtinyxml2_1_1_x_m_l_node.html#a09dd68cf9eae137579f6e50f36487513">SetValue</a>(const char *val, bool staticMem=false)</td><td class="entry"><a class="el" href="classtinyxml2_1_1_x_m_l_node.html">tinyxml2::XMLNode</a></td><td class="entry"></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classtinyxml2_1_1_x_m_l_document.html#aa37cc1709d7e1e988bc17dcfb24a69b8">ShallowClone</a>(XMLDocument *) const</td><td class="entry"><a class="el" href="classtinyxml2_1_1_x_m_l_document.html">tinyxml2::XMLDocument</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">virtual</span></td></tr>
<tr><td class="entry"><a class="el" href="classtinyxml2_1_1_x_m_l_document.html#a6fe5ef18699091844fcf64b56ffa5bf9">ShallowEqual</a>(const XMLNode *) const</td><td class="entry"><a class="el" href="classtinyxml2_1_1_x_m_l_document.html">tinyxml2::XMLDocument</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">virtual</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classtinyxml2_1_1_x_m_l_node.html#aff47671055aa99840a1c1ebd661e63e3">ToComment</a>()</td><td class="entry"><a class="el" href="classtinyxml2_1_1_x_m_l_node.html">tinyxml2::XMLNode</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">virtual</span></td></tr>
<tr><td class="entry"><a class="el" href="classtinyxml2_1_1_x_m_l_node.html#a174fd4c22c010b58138c1b84a0dfbd51">ToDeclaration</a>()</td><td class="entry"><a class="el" href="classtinyxml2_1_1_x_m_l_node.html">tinyxml2::XMLNode</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">virtual</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classtinyxml2_1_1_x_m_l_document.html#a3e185f880882bd978367bb55937735ec">ToDocument</a>()</td><td class="entry"><a class="el" href="classtinyxml2_1_1_x_m_l_document.html">tinyxml2::XMLDocument</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">virtual</span></td></tr>
<tr><td class="entry"><a class="el" href="classtinyxml2_1_1_x_m_l_node.html#aab516e699567f75cc9ab2ef2eee501e8">ToElement</a>()</td><td class="entry"><a class="el" href="classtinyxml2_1_1_x_m_l_node.html">tinyxml2::XMLNode</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">virtual</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classtinyxml2_1_1_x_m_l_node.html#a41c55dab9162d1eb62db2008430e376b">ToText</a>()</td><td class="entry"><a class="el" href="classtinyxml2_1_1_x_m_l_node.html">tinyxml2::XMLNode</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">virtual</span></td></tr>
<tr><td class="entry"><a class="el" href="classtinyxml2_1_1_x_m_l_node.html#a8675a74aa0ada6eccab0c77ef3e5b9bd">ToUnknown</a>()</td><td class="entry"><a class="el" href="classtinyxml2_1_1_x_m_l_node.html">tinyxml2::XMLNode</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">virtual</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classtinyxml2_1_1_x_m_l_node.html#a66344989a4b436155bcda72bd6b07b82">Value</a>() const</td><td class="entry"><a class="el" href="classtinyxml2_1_1_x_m_l_node.html">tinyxml2::XMLNode</a></td><td class="entry"></td></tr>
<tr><td class="entry"><a class="el" href="classtinyxml2_1_1_x_m_l_document.html#a57ddf17b6e054dda10af98991b1b8f70">XMLDocument</a>(bool processEntities=true, Whitespace whitespaceMode=PRESERVE_WHITESPACE)</td><td class="entry"><a class="el" href="classtinyxml2_1_1_x_m_l_document.html">tinyxml2::XMLDocument</a></td><td class="entry"></td></tr>
<tr><td class="entry"><a class="el" href="classtinyxml2_1_1_x_m_l_node.html#a9b5fc636646fda761d342c72e91cb286">GetLineNum</a>() const</td><td class="entry"><a class="el" href="classtinyxml2_1_1_x_m_l_node.html">tinyxml2::XMLNode</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classtinyxml2_1_1_x_m_l_node.html#a7f0687574afa03bc479dc44f29db0afe">GetUserData</a>() const</td><td class="entry"><a class="el" href="classtinyxml2_1_1_x_m_l_node.html">tinyxml2::XMLNode</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr><td class="entry"><a class="el" href="classtinyxml2_1_1_x_m_l_document.html#a33fc5d159db873a179fa26338adb05bd">HasBOM</a>() const</td><td class="entry"><a class="el" href="classtinyxml2_1_1_x_m_l_document.html">tinyxml2::XMLDocument</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classtinyxml2_1_1_x_m_l_node.html#a85adb8f0b7477eec30f9a41d420b09c2">InsertAfterChild</a>(XMLNode *afterThis, XMLNode *addThis)</td><td class="entry"><a class="el" href="classtinyxml2_1_1_x_m_l_node.html">tinyxml2::XMLNode</a></td><td class="entry"></td></tr>
<tr><td class="entry"><a class="el" href="classtinyxml2_1_1_x_m_l_node.html#aeb249ed60f4e8bfad3709151c3ee4286">InsertEndChild</a>(XMLNode *addThis)</td><td class="entry"><a class="el" href="classtinyxml2_1_1_x_m_l_node.html">tinyxml2::XMLNode</a></td><td class="entry"></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classtinyxml2_1_1_x_m_l_node.html#a8ff7dc071f3a1a6ae2ac25a37492865d">InsertFirstChild</a>(XMLNode *addThis)</td><td class="entry"><a class="el" href="classtinyxml2_1_1_x_m_l_node.html">tinyxml2::XMLNode</a></td><td class="entry"></td></tr>
<tr><td class="entry"><a class="el" href="classtinyxml2_1_1_x_m_l_node.html#a9b8583a277e8e26f4cbbb5492786778e">LastChild</a>() const</td><td class="entry"><a class="el" href="classtinyxml2_1_1_x_m_l_node.html">tinyxml2::XMLNode</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classtinyxml2_1_1_x_m_l_node.html#a173e9d1341bc56992e2d320a35936551">LastChildElement</a>(const char *name=0) const</td><td class="entry"><a class="el" href="classtinyxml2_1_1_x_m_l_node.html">tinyxml2::XMLNode</a></td><td class="entry"></td></tr>
<tr><td class="entry"><a class="el" href="classtinyxml2_1_1_x_m_l_document.html#a2ebd4647a8af5fc6831b294ac26a150a">LoadFile</a>(const char *filename)</td><td class="entry"><a class="el" href="classtinyxml2_1_1_x_m_l_document.html">tinyxml2::XMLDocument</a></td><td class="entry"></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classtinyxml2_1_1_x_m_l_document.html#a5f1d330fad44c52f3d265338dd2a6dc2">LoadFile</a>(FILE *)</td><td class="entry"><a class="el" href="classtinyxml2_1_1_x_m_l_document.html">tinyxml2::XMLDocument</a></td><td class="entry"></td></tr>
<tr><td class="entry"><a class="el" href="classtinyxml2_1_1_x_m_l_document.html#ade4874bcb439954972ef2b3723ff3259">NewComment</a>(const char *comment)</td><td class="entry"><a class="el" href="classtinyxml2_1_1_x_m_l_document.html">tinyxml2::XMLDocument</a></td><td class="entry"></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classtinyxml2_1_1_x_m_l_document.html#aee2eb3435923f5494dcc70ac225b60a2">NewDeclaration</a>(const char *text=0)</td><td class="entry"><a class="el" href="classtinyxml2_1_1_x_m_l_document.html">tinyxml2::XMLDocument</a></td><td class="entry"></td></tr>
<tr><td class="entry"><a class="el" href="classtinyxml2_1_1_x_m_l_document.html#a8aa7817d4a1001364b06373763ab99d6">NewElement</a>(const char *name)</td><td class="entry"><a class="el" href="classtinyxml2_1_1_x_m_l_document.html">tinyxml2::XMLDocument</a></td><td class="entry"></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classtinyxml2_1_1_x_m_l_document.html#ab7e8b29ae4099092a8bb947da6361296">NewText</a>(const char *text)</td><td class="entry"><a class="el" href="classtinyxml2_1_1_x_m_l_document.html">tinyxml2::XMLDocument</a></td><td class="entry"></td></tr>
<tr><td class="entry"><a class="el" href="classtinyxml2_1_1_x_m_l_document.html#a5385c937734ff6db9226ab707d2c7147">NewUnknown</a>(const char *text)</td><td class="entry"><a class="el" href="classtinyxml2_1_1_x_m_l_document.html">tinyxml2::XMLDocument</a></td><td class="entry"></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classtinyxml2_1_1_x_m_l_node.html#a79db9ef0fe014d27790f2218b87bcbb5">NextSibling</a>() const</td><td class="entry"><a class="el" href="classtinyxml2_1_1_x_m_l_node.html">tinyxml2::XMLNode</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr><td class="entry"><a class="el" href="classtinyxml2_1_1_x_m_l_node.html#a1264c86233328f0cd36297552d982f80">NextSiblingElement</a>(const char *name=0) const</td><td class="entry"><a class="el" href="classtinyxml2_1_1_x_m_l_node.html">tinyxml2::XMLNode</a></td><td class="entry"></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classtinyxml2_1_1_x_m_l_node.html#ac3ab489e6e202a3cd1762d3b332e89d4">NoChildren</a>() const</td><td class="entry"><a class="el" href="classtinyxml2_1_1_x_m_l_node.html">tinyxml2::XMLNode</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr><td class="entry"><a class="el" href="classtinyxml2_1_1_x_m_l_node.html#ae0f62bc186c56c2e0483ebd52dbfbe34">Parent</a>() const</td><td class="entry"><a class="el" href="classtinyxml2_1_1_x_m_l_node.html">tinyxml2::XMLNode</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classtinyxml2_1_1_x_m_l_document.html#a1819bd34f540a7304c105a6232d25a1f">Parse</a>(const char *xml, size_t nBytes=(size_t)(-1))</td><td class="entry"><a class="el" href="classtinyxml2_1_1_x_m_l_document.html">tinyxml2::XMLDocument</a></td><td class="entry"></td></tr>
<tr><td class="entry"><a class="el" href="classtinyxml2_1_1_x_m_l_node.html#aac667c513d445f8b783e1e15ef9d3551">PreviousSibling</a>() const</td><td class="entry"><a class="el" href="classtinyxml2_1_1_x_m_l_node.html">tinyxml2::XMLNode</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classtinyxml2_1_1_x_m_l_node.html#a872936cae46fb473eb47fec99129fc70">PreviousSiblingElement</a>(const char *name=0) const</td><td class="entry"><a class="el" href="classtinyxml2_1_1_x_m_l_node.html">tinyxml2::XMLNode</a></td><td class="entry"></td></tr>
<tr><td class="entry"><a class="el" href="classtinyxml2_1_1_x_m_l_document.html#a867cf5fa3e3ff6ae4847a8b7ee8ec083">Print</a>(XMLPrinter *streamer=0) const</td><td class="entry"><a class="el" href="classtinyxml2_1_1_x_m_l_document.html">tinyxml2::XMLDocument</a></td><td class="entry"></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classtinyxml2_1_1_x_m_l_document.html#a1d033945b42e125d933d6231e4571552">PrintError</a>() const</td><td class="entry"><a class="el" href="classtinyxml2_1_1_x_m_l_document.html">tinyxml2::XMLDocument</a></td><td class="entry"></td></tr>
<tr><td class="entry"><a class="el" href="classtinyxml2_1_1_x_m_l_document.html#ad2b70320d3c2a071c2f36928edff3e1c">RootElement</a>()</td><td class="entry"><a class="el" href="classtinyxml2_1_1_x_m_l_document.html">tinyxml2::XMLDocument</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classtinyxml2_1_1_x_m_l_document.html#a73ac416b4a2aa0952e841220eb3da18f">SaveFile</a>(const char *filename, bool compact=false)</td><td class="entry"><a class="el" href="classtinyxml2_1_1_x_m_l_document.html">tinyxml2::XMLDocument</a></td><td class="entry"></td></tr>
<tr><td class="entry"><a class="el" href="classtinyxml2_1_1_x_m_l_document.html#a8b95779479a0035acc67b3a61dfe1b74">SaveFile</a>(FILE *fp, bool compact=false)</td><td class="entry"><a class="el" href="classtinyxml2_1_1_x_m_l_document.html">tinyxml2::XMLDocument</a></td><td class="entry"></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classtinyxml2_1_1_x_m_l_document.html#a14419b698f7c4b140df4e80f3f0c93b0">SetBOM</a>(bool useBOM)</td><td class="entry"><a class="el" href="classtinyxml2_1_1_x_m_l_document.html">tinyxml2::XMLDocument</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr><td class="entry"><a class="el" href="classtinyxml2_1_1_x_m_l_node.html#a002978fc889cc011d143185f2377eca2">SetUserData</a>(void *userData)</td><td class="entry"><a class="el" href="classtinyxml2_1_1_x_m_l_node.html">tinyxml2::XMLNode</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classtinyxml2_1_1_x_m_l_node.html#a09dd68cf9eae137579f6e50f36487513">SetValue</a>(const char *val, bool staticMem=false)</td><td class="entry"><a class="el" href="classtinyxml2_1_1_x_m_l_node.html">tinyxml2::XMLNode</a></td><td class="entry"></td></tr>
<tr><td class="entry"><a class="el" href="classtinyxml2_1_1_x_m_l_document.html#aa37cc1709d7e1e988bc17dcfb24a69b8">ShallowClone</a>(XMLDocument *) const</td><td class="entry"><a class="el" href="classtinyxml2_1_1_x_m_l_document.html">tinyxml2::XMLDocument</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">virtual</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classtinyxml2_1_1_x_m_l_document.html#a6fe5ef18699091844fcf64b56ffa5bf9">ShallowEqual</a>(const XMLNode *) const</td><td class="entry"><a class="el" href="classtinyxml2_1_1_x_m_l_document.html">tinyxml2::XMLDocument</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">virtual</span></td></tr>
<tr><td class="entry"><a class="el" href="classtinyxml2_1_1_x_m_l_node.html#aff47671055aa99840a1c1ebd661e63e3">ToComment</a>()</td><td class="entry"><a class="el" href="classtinyxml2_1_1_x_m_l_node.html">tinyxml2::XMLNode</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">virtual</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classtinyxml2_1_1_x_m_l_node.html#a174fd4c22c010b58138c1b84a0dfbd51">ToDeclaration</a>()</td><td class="entry"><a class="el" href="classtinyxml2_1_1_x_m_l_node.html">tinyxml2::XMLNode</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">virtual</span></td></tr>
<tr><td class="entry"><a class="el" href="classtinyxml2_1_1_x_m_l_document.html#a3e185f880882bd978367bb55937735ec">ToDocument</a>()</td><td class="entry"><a class="el" href="classtinyxml2_1_1_x_m_l_document.html">tinyxml2::XMLDocument</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">virtual</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classtinyxml2_1_1_x_m_l_node.html#aab516e699567f75cc9ab2ef2eee501e8">ToElement</a>()</td><td class="entry"><a class="el" href="classtinyxml2_1_1_x_m_l_node.html">tinyxml2::XMLNode</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">virtual</span></td></tr>
<tr><td class="entry"><a class="el" href="classtinyxml2_1_1_x_m_l_node.html#a41c55dab9162d1eb62db2008430e376b">ToText</a>()</td><td class="entry"><a class="el" href="classtinyxml2_1_1_x_m_l_node.html">tinyxml2::XMLNode</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">virtual</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classtinyxml2_1_1_x_m_l_node.html#a8675a74aa0ada6eccab0c77ef3e5b9bd">ToUnknown</a>()</td><td class="entry"><a class="el" href="classtinyxml2_1_1_x_m_l_node.html">tinyxml2::XMLNode</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">virtual</span></td></tr>
<tr><td class="entry"><a class="el" href="classtinyxml2_1_1_x_m_l_node.html#a66344989a4b436155bcda72bd6b07b82">Value</a>() const</td><td class="entry"><a class="el" href="classtinyxml2_1_1_x_m_l_node.html">tinyxml2::XMLNode</a></td><td class="entry"></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classtinyxml2_1_1_x_m_l_document.html#a57ddf17b6e054dda10af98991b1b8f70">XMLDocument</a>(bool processEntities=true, Whitespace whitespaceMode=PRESERVE_WHITESPACE)</td><td class="entry"><a class="el" href="classtinyxml2_1_1_x_m_l_document.html">tinyxml2::XMLDocument</a></td><td class="entry"></td></tr>
</table></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated on Sat Jul 15 2017 19:39:36 for TinyXML-2 by &#160;<a href="http://www.doxygen.org/index.html">
Generated on Sun Dec 10 2017 20:04:44 for TinyXML-2 by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.13
</small></address>

View File

@@ -22,7 +22,7 @@
<tr style="height: 56px;">
<td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">TinyXML-2
&#160;<span id="projectnumber">5.0.1</span>
&#160;<span id="projectnumber">6.0.0</span>
</div>
</td>
</tr>
@@ -132,28 +132,22 @@ bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="clas
XMLError&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classtinyxml2_1_1_x_m_l_document.html#afa3ed33b3107f920ec2b301f805ac17d">ErrorID</a> () const</td></tr>
<tr class="memdesc:afa3ed33b3107f920ec2b301f805ac17d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return the errorID. <br /></td></tr>
<tr class="separator:afa3ed33b3107f920ec2b301f805ac17d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a229494e30e5473237f3fa547eee4c43f"><td class="memItemLeft" align="right" valign="top"><a id="a229494e30e5473237f3fa547eee4c43f"></a>
const char *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classtinyxml2_1_1_x_m_l_document.html#a229494e30e5473237f3fa547eee4c43f">GetErrorStr1</a> () const</td></tr>
<tr class="memdesc:a229494e30e5473237f3fa547eee4c43f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return a possibly helpful diagnostic location or string. <br /></td></tr>
<tr class="separator:a229494e30e5473237f3fa547eee4c43f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a2d952f49c761bffd2903250680a8716b"><td class="memItemLeft" align="right" valign="top"><a id="a2d952f49c761bffd2903250680a8716b"></a>
const char *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classtinyxml2_1_1_x_m_l_document.html#a2d952f49c761bffd2903250680a8716b">GetErrorStr2</a> () const</td></tr>
<tr class="memdesc:a2d952f49c761bffd2903250680a8716b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return a possibly helpful secondary diagnostic location or string. <br /></td></tr>
<tr class="separator:a2d952f49c761bffd2903250680a8716b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad82d07e43e096e834dbdfd06312398c1"><td class="memItemLeft" align="right" valign="top"><a id="ad82d07e43e096e834dbdfd06312398c1"></a>
int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classtinyxml2_1_1_x_m_l_document.html#ad82d07e43e096e834dbdfd06312398c1">GetErrorLineNum</a> () const</td></tr>
<tr class="memdesc:ad82d07e43e096e834dbdfd06312398c1"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return the line where the error occured, or zero if unknown. <br /></td></tr>
<tr class="separator:ad82d07e43e096e834dbdfd06312398c1"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad75aa9d32c4e8b300655186808aa9abf"><td class="memItemLeft" align="right" valign="top">const char *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classtinyxml2_1_1_x_m_l_document.html#ad75aa9d32c4e8b300655186808aa9abf">ErrorStr</a> () const</td></tr>
<tr class="separator:ad75aa9d32c4e8b300655186808aa9abf"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a1d033945b42e125d933d6231e4571552"><td class="memItemLeft" align="right" valign="top"><a id="a1d033945b42e125d933d6231e4571552"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classtinyxml2_1_1_x_m_l_document.html#a1d033945b42e125d933d6231e4571552">PrintError</a> () const</td></tr>
<tr class="memdesc:a1d033945b42e125d933d6231e4571552"><td class="mdescLeft">&#160;</td><td class="mdescRight">If there is an error, print it to stdout. <br /></td></tr>
<tr class="memdesc:a1d033945b42e125d933d6231e4571552"><td class="mdescLeft">&#160;</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="separator:a1d033945b42e125d933d6231e4571552"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a57400f816dbe7799ece33615ead9ab76"><td class="memItemLeft" align="right" valign="top"><a id="a57400f816dbe7799ece33615ead9ab76"></a>
int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classtinyxml2_1_1_x_m_l_document.html#a57400f816dbe7799ece33615ead9ab76">ErrorLineNum</a> () const</td></tr>
<tr class="memdesc:a57400f816dbe7799ece33615ead9ab76"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return the line where the error occured, or zero if unknown. <br /></td></tr>
<tr class="separator:a57400f816dbe7799ece33615ead9ab76"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a65656b0b2cbc822708eb351504178aaf"><td class="memItemLeft" align="right" valign="top"><a id="a65656b0b2cbc822708eb351504178aaf"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classtinyxml2_1_1_x_m_l_document.html#a65656b0b2cbc822708eb351504178aaf">Clear</a> ()</td></tr>
<tr class="memdesc:a65656b0b2cbc822708eb351504178aaf"><td class="mdescLeft">&#160;</td><td class="mdescRight">Clear the document, resetting it to the initial state. <br /></td></tr>
<tr class="separator:a65656b0b2cbc822708eb351504178aaf"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aab792e90adc38cdc5446616573b8b01b"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classtinyxml2_1_1_x_m_l_document.html#aab792e90adc38cdc5446616573b8b01b">DeepCopy</a> (<a class="el" href="classtinyxml2_1_1_x_m_l_document.html">XMLDocument</a> *target)</td></tr>
<tr class="separator:aab792e90adc38cdc5446616573b8b01b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af592ffc91514e25a39664521ac83db45"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classtinyxml2_1_1_x_m_l_document.html#af592ffc91514e25a39664521ac83db45">DeepCopy</a> (<a class="el" href="classtinyxml2_1_1_x_m_l_document.html">XMLDocument</a> *target) const</td></tr>
<tr class="separator:af592ffc91514e25a39664521ac83db45"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa37cc1709d7e1e988bc17dcfb24a69b8"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="classtinyxml2_1_1_x_m_l_node.html">XMLNode</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classtinyxml2_1_1_x_m_l_document.html#aa37cc1709d7e1e988bc17dcfb24a69b8">ShallowClone</a> (<a class="el" href="classtinyxml2_1_1_x_m_l_document.html">XMLDocument</a> *) const</td></tr>
<tr class="separator:aa37cc1709d7e1e988bc17dcfb24a69b8"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a6fe5ef18699091844fcf64b56ffa5bf9"><td class="memItemLeft" align="right" valign="top">virtual bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classtinyxml2_1_1_x_m_l_document.html#a6fe5ef18699091844fcf64b56ffa5bf9">ShallowEqual</a> (const <a class="el" href="classtinyxml2_1_1_x_m_l_node.html">XMLNode</a> *) const</td></tr>
@@ -290,8 +284,8 @@ const char* xmlcstr = printer.CStr();
</div>
</div>
<a id="aab792e90adc38cdc5446616573b8b01b"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aab792e90adc38cdc5446616573b8b01b">&#9670;&nbsp;</a></span>DeepCopy()</h2>
<a id="af592ffc91514e25a39664521ac83db45"></a>
<h2 class="memtitle"><span class="permalink"><a href="#af592ffc91514e25a39664521ac83db45">&#9670;&nbsp;</a></span>DeepCopy()</h2>
<div class="memitem">
<div class="memproto">
@@ -301,7 +295,7 @@ const char* xmlcstr = printer.CStr();
<td>(</td>
<td class="paramtype"><a class="el" href="classtinyxml2_1_1_x_m_l_document.html">XMLDocument</a> *&#160;</td>
<td class="paramname"><em>target</em></td><td>)</td>
<td></td>
<td> const</td>
</tr>
</table>
</div><div class="memdoc">
@@ -327,6 +321,24 @@ const char* xmlcstr = printer.CStr();
</div><div class="memdoc">
<p>Delete a node associated with this document. It will be unlinked from the DOM. </p>
</div>
</div>
<a id="ad75aa9d32c4e8b300655186808aa9abf"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ad75aa9d32c4e8b300655186808aa9abf">&#9670;&nbsp;</a></span>ErrorStr()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">const char* tinyxml2::XMLDocument::ErrorStr </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td> const</td>
</tr>
</table>
</div><div class="memdoc">
<p>Returns a "long form" error description. A hopefully helpful diagnostic with location, line number, and/or additional info. </p>
</div>
</div>
<a id="a33fc5d159db873a179fa26338adb05bd"></a>
@@ -722,7 +734,7 @@ doc.Print( &amp;printer );
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated on Sat Jul 15 2017 19:39:36 for TinyXML-2 by &#160;<a href="http://www.doxygen.org/index.html">
Generated on Sun Dec 10 2017 20:04:44 for TinyXML-2 by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.13
</small></address>

View File

@@ -22,7 +22,7 @@
<tr style="height: 56px;">
<td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">TinyXML-2
&#160;<span id="projectnumber">5.0.1</span>
&#160;<span id="projectnumber">6.0.0</span>
</div>
</td>
</tr>
@@ -150,7 +150,7 @@ $(function() {
</table></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated on Sat Jul 15 2017 19:39:36 for TinyXML-2 by &#160;<a href="http://www.doxygen.org/index.html">
Generated on Sun Dec 10 2017 20:04:44 for TinyXML-2 by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.13
</small></address>

View File

@@ -22,7 +22,7 @@
<tr style="height: 56px;">
<td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">TinyXML-2
&#160;<span id="projectnumber">5.0.1</span>
&#160;<span id="projectnumber">6.0.0</span>
</div>
</td>
</tr>
@@ -700,7 +700,7 @@ QueryIntAttribute( "foo", &amp;value ); // if "foo" isn't found, value will
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated on Sat Jul 15 2017 19:39:36 for TinyXML-2 by &#160;<a href="http://www.doxygen.org/index.html">
Generated on Sun Dec 10 2017 20:04:44 for TinyXML-2 by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.13
</small></address>

View File

@@ -22,7 +22,7 @@
<tr style="height: 56px;">
<td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">TinyXML-2
&#160;<span id="projectnumber">5.0.1</span>
&#160;<span id="projectnumber">6.0.0</span>
</div>
</td>
</tr>
@@ -90,7 +90,7 @@ $(function() {
</table></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated on Sat Jul 15 2017 19:39:36 for TinyXML-2 by &#160;<a href="http://www.doxygen.org/index.html">
Generated on Sun Dec 10 2017 20:04:44 for TinyXML-2 by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.13
</small></address>

View File

@@ -22,7 +22,7 @@
<tr style="height: 56px;">
<td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">TinyXML-2
&#160;<span id="projectnumber">5.0.1</span>
&#160;<span id="projectnumber">6.0.0</span>
</div>
</td>
</tr>
@@ -181,7 +181,7 @@ if ( child2 )
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated on Sat Jul 15 2017 19:39:36 for TinyXML-2 by &#160;<a href="http://www.doxygen.org/index.html">
Generated on Sun Dec 10 2017 20:04:44 for TinyXML-2 by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.13
</small></address>

View File

@@ -22,7 +22,7 @@
<tr style="height: 56px;">
<td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">TinyXML-2
&#160;<span id="projectnumber">5.0.1</span>
&#160;<span id="projectnumber">6.0.0</span>
</div>
</td>
</tr>
@@ -105,7 +105,7 @@ $(function() {
</table></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated on Sat Jul 15 2017 19:39:36 for TinyXML-2 by &#160;<a href="http://www.doxygen.org/index.html">
Generated on Sun Dec 10 2017 20:04:44 for TinyXML-2 by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.13
</small></address>

View File

@@ -22,7 +22,7 @@
<tr style="height: 56px;">
<td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">TinyXML-2
&#160;<span id="projectnumber">5.0.1</span>
&#160;<span id="projectnumber">6.0.0</span>
</div>
</td>
</tr>
@@ -257,7 +257,7 @@ const char* xmlcstr = printer.CStr();
</div><div class="memdoc">
<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#aab792e90adc38cdc5446616573b8b01b">XMLDocument::DeepCopy()</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>
</div>
</div>
@@ -573,7 +573,7 @@ Text: the text string
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated on Sat Jul 15 2017 19:39:36 for TinyXML-2 by &#160;<a href="http://www.doxygen.org/index.html">
Generated on Sun Dec 10 2017 20:04:44 for TinyXML-2 by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.13
</small></address>

View File

@@ -22,7 +22,7 @@
<tr style="height: 56px;">
<td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">TinyXML-2
&#160;<span id="projectnumber">5.0.1</span>
&#160;<span id="projectnumber">6.0.0</span>
</div>
</td>
</tr>
@@ -98,7 +98,7 @@ $(function() {
</table></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated on Sat Jul 15 2017 19:39:36 for TinyXML-2 by &#160;<a href="http://www.doxygen.org/index.html">
Generated on Sun Dec 10 2017 20:04:44 for TinyXML-2 by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.13
</small></address>

View File

@@ -22,7 +22,7 @@
<tr style="height: 56px;">
<td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">TinyXML-2
&#160;<span id="projectnumber">5.0.1</span>
&#160;<span id="projectnumber">6.0.0</span>
</div>
</td>
</tr>
@@ -402,7 +402,7 @@ printer.CloseElement();
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated on Sat Jul 15 2017 19:39:36 for TinyXML-2 by &#160;<a href="http://www.doxygen.org/index.html">
Generated on Sun Dec 10 2017 20:04:44 for TinyXML-2 by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.13
</small></address>

View File

@@ -22,7 +22,7 @@
<tr style="height: 56px;">
<td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">TinyXML-2
&#160;<span id="projectnumber">5.0.1</span>
&#160;<span id="projectnumber">6.0.0</span>
</div>
</td>
</tr>
@@ -107,7 +107,7 @@ $(function() {
</table></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated on Sat Jul 15 2017 19:39:36 for TinyXML-2 by &#160;<a href="http://www.doxygen.org/index.html">
Generated on Sun Dec 10 2017 20:04:44 for TinyXML-2 by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.13
</small></address>

View File

@@ -22,7 +22,7 @@
<tr style="height: 56px;">
<td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">TinyXML-2
&#160;<span id="projectnumber">5.0.1</span>
&#160;<span id="projectnumber">6.0.0</span>
</div>
</td>
</tr>
@@ -302,7 +302,7 @@ const char* xmlcstr = printer.CStr();
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated on Sat Jul 15 2017 19:39:36 for TinyXML-2 by &#160;<a href="http://www.doxygen.org/index.html">
Generated on Sun Dec 10 2017 20:04:44 for TinyXML-2 by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.13
</small></address>

View File

@@ -22,7 +22,7 @@
<tr style="height: 56px;">
<td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">TinyXML-2
&#160;<span id="projectnumber">5.0.1</span>
&#160;<span id="projectnumber">6.0.0</span>
</div>
</td>
</tr>
@@ -105,7 +105,7 @@ $(function() {
</table></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated on Sat Jul 15 2017 19:39:36 for TinyXML-2 by &#160;<a href="http://www.doxygen.org/index.html">
Generated on Sun Dec 10 2017 20:04:44 for TinyXML-2 by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.13
</small></address>

View File

@@ -22,7 +22,7 @@
<tr style="height: 56px;">
<td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">TinyXML-2
&#160;<span id="projectnumber">5.0.1</span>
&#160;<span id="projectnumber">6.0.0</span>
</div>
</td>
</tr>
@@ -293,7 +293,7 @@ const char* xmlcstr = printer.CStr();
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated on Sat Jul 15 2017 19:39:36 for TinyXML-2 by &#160;<a href="http://www.doxygen.org/index.html">
Generated on Sun Dec 10 2017 20:04:44 for TinyXML-2 by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.13
</small></address>

View File

@@ -22,7 +22,7 @@
<tr style="height: 56px;">
<td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">TinyXML-2
&#160;<span id="projectnumber">5.0.1</span>
&#160;<span id="projectnumber">6.0.0</span>
</div>
</td>
</tr>
@@ -81,7 +81,7 @@ $(function() {
</table></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated on Sat Jul 15 2017 19:39:36 for TinyXML-2 by &#160;<a href="http://www.doxygen.org/index.html">
Generated on Sun Dec 10 2017 20:04:44 for TinyXML-2 by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.13
</small></address>

View File

@@ -22,7 +22,7 @@
<tr style="height: 56px;">
<td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">TinyXML-2
&#160;<span id="projectnumber">5.0.1</span>
&#160;<span id="projectnumber">6.0.0</span>
</div>
</td>
</tr>
@@ -130,7 +130,7 @@ virtual bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" hr
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated on Sat Jul 15 2017 19:39:36 for TinyXML-2 by &#160;<a href="http://www.doxygen.org/index.html">
Generated on Sun Dec 10 2017 20:04:44 for TinyXML-2 by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.13
</small></address>

View File

@@ -22,7 +22,7 @@
<tr style="height: 56px;">
<td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">TinyXML-2
&#160;<span id="projectnumber">5.0.1</span>
&#160;<span id="projectnumber">6.0.0</span>
</div>
</td>
</tr>
@@ -71,7 +71,7 @@ $(function() {
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated on Sat Jul 15 2017 19:39:36 for TinyXML-2 by &#160;<a href="http://www.doxygen.org/index.html">
Generated on Sun Dec 10 2017 20:04:44 for TinyXML-2 by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.13
</small></address>

View File

@@ -22,7 +22,7 @@
<tr style="height: 56px;">
<td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">TinyXML-2
&#160;<span id="projectnumber">5.0.1</span>
&#160;<span id="projectnumber">6.0.0</span>
</div>
</td>
</tr>
@@ -117,7 +117,7 @@ $(function() {
: <a class="el" href="classtinyxml2_1_1_x_m_l_node.html#a62c71b6bf8734b5424063b8d9a61c266">tinyxml2::XMLNode</a>
</li>
<li>DeepCopy()
: <a class="el" href="classtinyxml2_1_1_x_m_l_document.html#aab792e90adc38cdc5446616573b8b01b">tinyxml2::XMLDocument</a>
: <a class="el" href="classtinyxml2_1_1_x_m_l_document.html#af592ffc91514e25a39664521ac83db45">tinyxml2::XMLDocument</a>
</li>
<li>DeleteAttribute()
: <a class="el" href="classtinyxml2_1_1_x_m_l_element.html#aebd45aa7118964c30b32fe12e944628a">tinyxml2::XMLElement</a>
@@ -150,6 +150,12 @@ $(function() {
<li>ErrorID()
: <a class="el" href="classtinyxml2_1_1_x_m_l_document.html#afa3ed33b3107f920ec2b301f805ac17d">tinyxml2::XMLDocument</a>
</li>
<li>ErrorLineNum()
: <a class="el" href="classtinyxml2_1_1_x_m_l_document.html#a57400f816dbe7799ece33615ead9ab76">tinyxml2::XMLDocument</a>
</li>
<li>ErrorStr()
: <a class="el" href="classtinyxml2_1_1_x_m_l_document.html#ad75aa9d32c4e8b300655186808aa9abf">tinyxml2::XMLDocument</a>
</li>
</ul>
@@ -184,15 +190,6 @@ $(function() {
<li>GetDocument()
: <a class="el" href="classtinyxml2_1_1_x_m_l_node.html#a2de84cfa4ec3fe249bad745069d145f1">tinyxml2::XMLNode</a>
</li>
<li>GetErrorLineNum()
: <a class="el" href="classtinyxml2_1_1_x_m_l_document.html#ad82d07e43e096e834dbdfd06312398c1">tinyxml2::XMLDocument</a>
</li>
<li>GetErrorStr1()
: <a class="el" href="classtinyxml2_1_1_x_m_l_document.html#a229494e30e5473237f3fa547eee4c43f">tinyxml2::XMLDocument</a>
</li>
<li>GetErrorStr2()
: <a class="el" href="classtinyxml2_1_1_x_m_l_document.html#a2d952f49c761bffd2903250680a8716b">tinyxml2::XMLDocument</a>
</li>
<li>GetLineNum()
: <a class="el" href="classtinyxml2_1_1_x_m_l_attribute.html#a02d5ea924586e35f9c13857d1671b765">tinyxml2::XMLAttribute</a>
, <a class="el" href="classtinyxml2_1_1_x_m_l_node.html#a9b5fc636646fda761d342c72e91cb286">tinyxml2::XMLNode</a>
@@ -536,7 +533,7 @@ $(function() {
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated on Sat Jul 15 2017 19:39:36 for TinyXML-2 by &#160;<a href="http://www.doxygen.org/index.html">
Generated on Sun Dec 10 2017 20:04:44 for TinyXML-2 by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.13
</small></address>

View File

@@ -22,7 +22,7 @@
<tr style="height: 56px;">
<td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">TinyXML-2
&#160;<span id="projectnumber">5.0.1</span>
&#160;<span id="projectnumber">6.0.0</span>
</div>
</td>
</tr>
@@ -117,7 +117,7 @@ $(function() {
: <a class="el" href="classtinyxml2_1_1_x_m_l_node.html#a62c71b6bf8734b5424063b8d9a61c266">tinyxml2::XMLNode</a>
</li>
<li>DeepCopy()
: <a class="el" href="classtinyxml2_1_1_x_m_l_document.html#aab792e90adc38cdc5446616573b8b01b">tinyxml2::XMLDocument</a>
: <a class="el" href="classtinyxml2_1_1_x_m_l_document.html#af592ffc91514e25a39664521ac83db45">tinyxml2::XMLDocument</a>
</li>
<li>DeleteAttribute()
: <a class="el" href="classtinyxml2_1_1_x_m_l_element.html#aebd45aa7118964c30b32fe12e944628a">tinyxml2::XMLElement</a>
@@ -150,6 +150,12 @@ $(function() {
<li>ErrorID()
: <a class="el" href="classtinyxml2_1_1_x_m_l_document.html#afa3ed33b3107f920ec2b301f805ac17d">tinyxml2::XMLDocument</a>
</li>
<li>ErrorLineNum()
: <a class="el" href="classtinyxml2_1_1_x_m_l_document.html#a57400f816dbe7799ece33615ead9ab76">tinyxml2::XMLDocument</a>
</li>
<li>ErrorStr()
: <a class="el" href="classtinyxml2_1_1_x_m_l_document.html#ad75aa9d32c4e8b300655186808aa9abf">tinyxml2::XMLDocument</a>
</li>
</ul>
@@ -184,15 +190,6 @@ $(function() {
<li>GetDocument()
: <a class="el" href="classtinyxml2_1_1_x_m_l_node.html#a2de84cfa4ec3fe249bad745069d145f1">tinyxml2::XMLNode</a>
</li>
<li>GetErrorLineNum()
: <a class="el" href="classtinyxml2_1_1_x_m_l_document.html#ad82d07e43e096e834dbdfd06312398c1">tinyxml2::XMLDocument</a>
</li>
<li>GetErrorStr1()
: <a class="el" href="classtinyxml2_1_1_x_m_l_document.html#a229494e30e5473237f3fa547eee4c43f">tinyxml2::XMLDocument</a>
</li>
<li>GetErrorStr2()
: <a class="el" href="classtinyxml2_1_1_x_m_l_document.html#a2d952f49c761bffd2903250680a8716b">tinyxml2::XMLDocument</a>
</li>
<li>GetLineNum()
: <a class="el" href="classtinyxml2_1_1_x_m_l_attribute.html#a02d5ea924586e35f9c13857d1671b765">tinyxml2::XMLAttribute</a>
, <a class="el" href="classtinyxml2_1_1_x_m_l_node.html#a9b5fc636646fda761d342c72e91cb286">tinyxml2::XMLNode</a>
@@ -536,7 +533,7 @@ $(function() {
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated on Sat Jul 15 2017 19:39:36 for TinyXML-2 by &#160;<a href="http://www.doxygen.org/index.html">
Generated on Sun Dec 10 2017 20:04:44 for TinyXML-2 by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.13
</small></address>

View File

@@ -22,7 +22,7 @@
<tr style="height: 56px;">
<td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">TinyXML-2
&#160;<span id="projectnumber">5.0.1</span>
&#160;<span id="projectnumber">6.0.0</span>
</div>
</td>
</tr>
@@ -82,7 +82,7 @@ $(function() {
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated on Sat Jul 15 2017 19:39:36 for TinyXML-2 by &#160;<a href="http://www.doxygen.org/index.html">
Generated on Sun Dec 10 2017 20:04:44 for TinyXML-2 by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.13
</small></address>

View File

@@ -22,7 +22,7 @@
<tr style="height: 56px;">
<td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">TinyXML-2
&#160;<span id="projectnumber">5.0.1</span>
&#160;<span id="projectnumber">6.0.0</span>
</div>
</td>
</tr>
@@ -222,7 +222,7 @@ printer.CloseElement();
</div></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated on Sat Jul 15 2017 19:39:36 for TinyXML-2 by &#160;<a href="http://www.doxygen.org/index.html">
Generated on Sun Dec 10 2017 20:04:44 for TinyXML-2 by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.13
</small></address>

View File

@@ -22,7 +22,7 @@
<tr style="height: 56px;">
<td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">TinyXML-2
&#160;<span id="projectnumber">5.0.1</span>
&#160;<span id="projectnumber">6.0.0</span>
</div>
</td>
</tr>
@@ -65,16 +65,16 @@ $(function() {
<div class="contents">
<div class="textblock">Here is a list of all related documentation pages:</div><div class="directory">
<table class="directory">
<tr id="row_0_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><a class="el" href="_example-1.html" target="_self">Load an XML File</a></td><td class="desc"></td></tr>
<tr id="row_1_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><a class="el" href="_example-2.html" target="_self">Parse an XML from char buffer</a></td><td class="desc"></td></tr>
<tr id="row_2_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><a class="el" href="_example-3.html" target="_self">Get information out of XML</a></td><td class="desc"></td></tr>
<tr id="row_3_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><a class="el" href="_example-4.html" target="_self">Read attributes and text information.</a></td><td class="desc"></td></tr>
<tr id="row_0_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><a class="el" href="_example_1.html" target="_self">Load an XML File</a></td><td class="desc"></td></tr>
<tr id="row_1_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><a class="el" href="_example_2.html" target="_self">Parse an XML from char buffer</a></td><td class="desc"></td></tr>
<tr id="row_2_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><a class="el" href="_example_3.html" target="_self">Get information out of XML</a></td><td class="desc"></td></tr>
<tr id="row_3_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><a class="el" href="_example_4.html" target="_self">Read attributes and text information.</a></td><td class="desc"></td></tr>
</table>
</div><!-- directory -->
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated on Sat Jul 15 2017 19:39:36 for TinyXML-2 by &#160;<a href="http://www.doxygen.org/index.html">
Generated on Sun Dec 10 2017 20:04:44 for TinyXML-2 by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.13
</small></address>

View File

@@ -1,7 +1,7 @@
var searchData=
[
['deepclone',['DeepClone',['../classtinyxml2_1_1_x_m_l_node.html#a62c71b6bf8734b5424063b8d9a61c266',1,'tinyxml2::XMLNode']]],
['deepcopy',['DeepCopy',['../classtinyxml2_1_1_x_m_l_document.html#aab792e90adc38cdc5446616573b8b01b',1,'tinyxml2::XMLDocument']]],
['deepcopy',['DeepCopy',['../classtinyxml2_1_1_x_m_l_document.html#af592ffc91514e25a39664521ac83db45',1,'tinyxml2::XMLDocument']]],
['deleteattribute',['DeleteAttribute',['../classtinyxml2_1_1_x_m_l_element.html#aebd45aa7118964c30b32fe12e944628a',1,'tinyxml2::XMLElement']]],
['deletechild',['DeleteChild',['../classtinyxml2_1_1_x_m_l_node.html#a363b6edbd6ebd55f8387d2b89f2b0921',1,'tinyxml2::XMLNode']]],
['deletechildren',['DeleteChildren',['../classtinyxml2_1_1_x_m_l_node.html#a0360085cc54df5bff85d5c5da13afdce',1,'tinyxml2::XMLNode']]],

View File

@@ -1,5 +1,7 @@
var searchData=
[
['error',['Error',['../classtinyxml2_1_1_x_m_l_document.html#a34e6318e182e40e3cc4f4ba5d59ed9ed',1,'tinyxml2::XMLDocument']]],
['errorid',['ErrorID',['../classtinyxml2_1_1_x_m_l_document.html#afa3ed33b3107f920ec2b301f805ac17d',1,'tinyxml2::XMLDocument']]]
['errorid',['ErrorID',['../classtinyxml2_1_1_x_m_l_document.html#afa3ed33b3107f920ec2b301f805ac17d',1,'tinyxml2::XMLDocument']]],
['errorlinenum',['ErrorLineNum',['../classtinyxml2_1_1_x_m_l_document.html#a57400f816dbe7799ece33615ead9ab76',1,'tinyxml2::XMLDocument']]],
['errorstr',['ErrorStr',['../classtinyxml2_1_1_x_m_l_document.html#ad75aa9d32c4e8b300655186808aa9abf',1,'tinyxml2::XMLDocument']]]
];

View File

@@ -1,10 +1,7 @@
var searchData=
[
['get_20information_20out_20of_20xml',['Get information out of XML',['../_example-3.html',1,'']]],
['get_20information_20out_20of_20xml',['Get information out of XML',['../_example_3.html',1,'']]],
['getdocument',['GetDocument',['../classtinyxml2_1_1_x_m_l_node.html#a2de84cfa4ec3fe249bad745069d145f1',1,'tinyxml2::XMLNode::GetDocument() const'],['../classtinyxml2_1_1_x_m_l_node.html#af343d1ef0b45c0020e62d784d7e67a68',1,'tinyxml2::XMLNode::GetDocument()']]],
['geterrorlinenum',['GetErrorLineNum',['../classtinyxml2_1_1_x_m_l_document.html#ad82d07e43e096e834dbdfd06312398c1',1,'tinyxml2::XMLDocument']]],
['geterrorstr1',['GetErrorStr1',['../classtinyxml2_1_1_x_m_l_document.html#a229494e30e5473237f3fa547eee4c43f',1,'tinyxml2::XMLDocument']]],
['geterrorstr2',['GetErrorStr2',['../classtinyxml2_1_1_x_m_l_document.html#a2d952f49c761bffd2903250680a8716b',1,'tinyxml2::XMLDocument']]],
['getlinenum',['GetLineNum',['../classtinyxml2_1_1_x_m_l_node.html#a9b5fc636646fda761d342c72e91cb286',1,'tinyxml2::XMLNode::GetLineNum()'],['../classtinyxml2_1_1_x_m_l_attribute.html#a02d5ea924586e35f9c13857d1671b765',1,'tinyxml2::XMLAttribute::GetLineNum()']]],
['gettext',['GetText',['../classtinyxml2_1_1_x_m_l_element.html#a6d5c8d115561ade4e4456b71d91b6f51',1,'tinyxml2::XMLElement']]],
['getuserdata',['GetUserData',['../classtinyxml2_1_1_x_m_l_node.html#a7f0687574afa03bc479dc44f29db0afe',1,'tinyxml2::XMLNode']]]

View File

@@ -1,6 +1,6 @@
var searchData=
[
['load_20an_20xml_20file',['Load an XML File',['../_example-1.html',1,'']]],
['load_20an_20xml_20file',['Load an XML File',['../_example_1.html',1,'']]],
['lastchild',['LastChild',['../classtinyxml2_1_1_x_m_l_node.html#a9b8583a277e8e26f4cbbb5492786778e',1,'tinyxml2::XMLNode::LastChild()'],['../classtinyxml2_1_1_x_m_l_handle.html#a9d09f04435f0f2f7d0816b0198d0517b',1,'tinyxml2::XMLHandle::LastChild()']]],
['lastchildelement',['LastChildElement',['../classtinyxml2_1_1_x_m_l_node.html#a173e9d1341bc56992e2d320a35936551',1,'tinyxml2::XMLNode::LastChildElement()'],['../classtinyxml2_1_1_x_m_l_handle.html#a42cccd0ce8b1ce704f431025e9f19e0c',1,'tinyxml2::XMLHandle::LastChildElement()']]],
['loadfile',['LoadFile',['../classtinyxml2_1_1_x_m_l_document.html#a2ebd4647a8af5fc6831b294ac26a150a',1,'tinyxml2::XMLDocument::LoadFile(const char *filename)'],['../classtinyxml2_1_1_x_m_l_document.html#a5f1d330fad44c52f3d265338dd2a6dc2',1,'tinyxml2::XMLDocument::LoadFile(FILE *)']]]

View File

@@ -1,6 +1,6 @@
var searchData=
[
['parse_20an_20xml_20from_20char_20buffer',['Parse an XML from char buffer',['../_example-2.html',1,'']]],
['parse_20an_20xml_20from_20char_20buffer',['Parse an XML from char buffer',['../_example_2.html',1,'']]],
['parent',['Parent',['../classtinyxml2_1_1_x_m_l_node.html#ae0f62bc186c56c2e0483ebd52dbfbe34',1,'tinyxml2::XMLNode']]],
['parse',['Parse',['../classtinyxml2_1_1_x_m_l_document.html#a1819bd34f540a7304c105a6232d25a1f',1,'tinyxml2::XMLDocument']]],
['previoussibling',['PreviousSibling',['../classtinyxml2_1_1_x_m_l_node.html#aac667c513d445f8b783e1e15ef9d3551',1,'tinyxml2::XMLNode::PreviousSibling()'],['../classtinyxml2_1_1_x_m_l_handle.html#a428374e756f4db4cbc287fec64eae02c',1,'tinyxml2::XMLHandle::PreviousSibling()']]],

View File

@@ -1,5 +1,5 @@
var searchData=
[
['read_20attributes_20and_20text_20information_2e',['Read attributes and text information.',['../_example-4.html',1,'']]],
['read_20attributes_20and_20text_20information_2e',['Read attributes and text information.',['../_example_4.html',1,'']]],
['rootelement',['RootElement',['../classtinyxml2_1_1_x_m_l_document.html#ad2b70320d3c2a071c2f36928edff3e1c',1,'tinyxml2::XMLDocument']]]
];

View File

@@ -1,7 +1,7 @@
var searchData=
[
['deepclone',['DeepClone',['../classtinyxml2_1_1_x_m_l_node.html#a62c71b6bf8734b5424063b8d9a61c266',1,'tinyxml2::XMLNode']]],
['deepcopy',['DeepCopy',['../classtinyxml2_1_1_x_m_l_document.html#aab792e90adc38cdc5446616573b8b01b',1,'tinyxml2::XMLDocument']]],
['deepcopy',['DeepCopy',['../classtinyxml2_1_1_x_m_l_document.html#af592ffc91514e25a39664521ac83db45',1,'tinyxml2::XMLDocument']]],
['deleteattribute',['DeleteAttribute',['../classtinyxml2_1_1_x_m_l_element.html#aebd45aa7118964c30b32fe12e944628a',1,'tinyxml2::XMLElement']]],
['deletechild',['DeleteChild',['../classtinyxml2_1_1_x_m_l_node.html#a363b6edbd6ebd55f8387d2b89f2b0921',1,'tinyxml2::XMLNode']]],
['deletechildren',['DeleteChildren',['../classtinyxml2_1_1_x_m_l_node.html#a0360085cc54df5bff85d5c5da13afdce',1,'tinyxml2::XMLNode']]],

View File

@@ -1,5 +1,7 @@
var searchData=
[
['error',['Error',['../classtinyxml2_1_1_x_m_l_document.html#a34e6318e182e40e3cc4f4ba5d59ed9ed',1,'tinyxml2::XMLDocument']]],
['errorid',['ErrorID',['../classtinyxml2_1_1_x_m_l_document.html#afa3ed33b3107f920ec2b301f805ac17d',1,'tinyxml2::XMLDocument']]]
['errorid',['ErrorID',['../classtinyxml2_1_1_x_m_l_document.html#afa3ed33b3107f920ec2b301f805ac17d',1,'tinyxml2::XMLDocument']]],
['errorlinenum',['ErrorLineNum',['../classtinyxml2_1_1_x_m_l_document.html#a57400f816dbe7799ece33615ead9ab76',1,'tinyxml2::XMLDocument']]],
['errorstr',['ErrorStr',['../classtinyxml2_1_1_x_m_l_document.html#ad75aa9d32c4e8b300655186808aa9abf',1,'tinyxml2::XMLDocument']]]
];

View File

@@ -1,9 +1,6 @@
var searchData=
[
['getdocument',['GetDocument',['../classtinyxml2_1_1_x_m_l_node.html#a2de84cfa4ec3fe249bad745069d145f1',1,'tinyxml2::XMLNode::GetDocument() const'],['../classtinyxml2_1_1_x_m_l_node.html#af343d1ef0b45c0020e62d784d7e67a68',1,'tinyxml2::XMLNode::GetDocument()']]],
['geterrorlinenum',['GetErrorLineNum',['../classtinyxml2_1_1_x_m_l_document.html#ad82d07e43e096e834dbdfd06312398c1',1,'tinyxml2::XMLDocument']]],
['geterrorstr1',['GetErrorStr1',['../classtinyxml2_1_1_x_m_l_document.html#a229494e30e5473237f3fa547eee4c43f',1,'tinyxml2::XMLDocument']]],
['geterrorstr2',['GetErrorStr2',['../classtinyxml2_1_1_x_m_l_document.html#a2d952f49c761bffd2903250680a8716b',1,'tinyxml2::XMLDocument']]],
['getlinenum',['GetLineNum',['../classtinyxml2_1_1_x_m_l_node.html#a9b5fc636646fda761d342c72e91cb286',1,'tinyxml2::XMLNode::GetLineNum()'],['../classtinyxml2_1_1_x_m_l_attribute.html#a02d5ea924586e35f9c13857d1671b765',1,'tinyxml2::XMLAttribute::GetLineNum()']]],
['gettext',['GetText',['../classtinyxml2_1_1_x_m_l_element.html#a6d5c8d115561ade4e4456b71d91b6f51',1,'tinyxml2::XMLElement']]],
['getuserdata',['GetUserData',['../classtinyxml2_1_1_x_m_l_node.html#a7f0687574afa03bc479dc44f29db0afe',1,'tinyxml2::XMLNode']]]

View File

@@ -1,4 +1,4 @@
var searchData=
[
['get_20information_20out_20of_20xml',['Get information out of XML',['../_example-3.html',1,'']]]
['get_20information_20out_20of_20xml',['Get information out of XML',['../_example_3.html',1,'']]]
];

View File

@@ -1,4 +1,4 @@
var searchData=
[
['load_20an_20xml_20file',['Load an XML File',['../_example-1.html',1,'']]]
['load_20an_20xml_20file',['Load an XML File',['../_example_1.html',1,'']]]
];

View File

@@ -1,4 +1,4 @@
var searchData=
[
['parse_20an_20xml_20from_20char_20buffer',['Parse an XML from char buffer',['../_example-2.html',1,'']]]
['parse_20an_20xml_20from_20char_20buffer',['Parse an XML from char buffer',['../_example_2.html',1,'']]]
];

View File

@@ -1,4 +1,4 @@
var searchData=
[
['read_20attributes_20and_20text_20information_2e',['Read attributes and text information.',['../_example-4.html',1,'']]]
['read_20attributes_20and_20text_20information_2e',['Read attributes and text information.',['../_example_4.html',1,'']]]
];

File diff suppressed because one or more lines are too long

6
dox
View File

@@ -38,7 +38,11 @@ PROJECT_NAME = "TinyXML-2"
# could be handy for archiving the generated documentation or if some version
# control system is used.
PROJECT_NUMBER = 6.0.0
<<<<<<< HEAD
PROJECT_NUMBER = 6.2.0
=======
PROJECT_NUMBER = 6.2.0
>>>>>>> master
# Using the PROJECT_BRIEF tag one can provide an optional one line description
# for a project that appears at the top of each page and should give viewer a

95
premake5.lua Normal file
View File

@@ -0,0 +1,95 @@
--
-- Requires: Premake 5 (https://premake.github.io/)
-- Usage: premake5 --file=premake5.lua [project / makefile format, refer to premake5 --help] --target=[target from below]
--
-- target option
tbl_target_values =
{
{ "windows", "VS2015 projects targeting Windows 32/64 bits" },
{ "macosx", "Xcode4 projects targeting OS X" },
}
newoption
{
trigger = "target",
description = "Build environment and target to generate projects for.",
allowed = tbl_target_values
}
-- validation
target_env = _OPTIONS["target"]
if not target_env then
print "Command-line option --target is required with one of the following values:"
for _, v in ipairs(tbl_target_values) do
print(v[1])
end
os.exit(1)
end
-- solution
workspace "tinyxml2"
tbl_platforms = {}
if target_env == "windows" then
tbl_platforms = {
"x86",
"x64",
}
elseif target_env == "macosx" then
tbl_platforms = {
"Universal64"
}
end
platforms(tbl_platforms)
tbl_configurations = {
"Debug",
"Release",
}
configurations(tbl_configurations)
sln_location = ".projects/"..target_env
location(sln_location)
bin_location = ".artifacts/"..target_env
obj_location = ".intermediate/"..target_env
for _, p in ipairs(tbl_platforms) do
for _, c in ipairs(tbl_configurations) do
local pc = p.."-"..c
filter{ "platforms:"..p, c }
targetdir(bin_location.."/"..pc)
libdirs(bin_location.."/"..pc)
objdir(obj_location.."/"..pc)
end
end
filter("not Release")
optimize "Debug"
symbols "On"
filter{ "Release" }
optimize "Full"
filter{}
-- projects
project "tinyxml2"
kind "staticlib"
files {
"tinyxml2.h",
"tinyxml2.cpp"
}
project "xmltest"
kind "consoleapp"
links {
"tinyxml2"
}
files {
"xmltest.cpp"
}

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@@ -67,6 +67,28 @@ def engineRule( line ):
fileProcess( "tinyxml2.h", engineRule )
def macroVersionRule( line ):
matchMajor = "#define TINYXML2_MAJOR_VERSION"
matchMinor = "#define TINYXML2_MINOR_VERSION"
matchBuild = "#define TINYXML2_PATCH_VERSION"
if line[0:len(matchMajor)] == matchMajor:
print( "1)macro Major found" )
return matchMajor + " " + major + "\n"
elif line[0:len(matchMinor)] == matchMinor:
print( "2)macro Minor found" )
return matchMinor + " " + minor + "\n"
elif line[0:len(matchBuild)] == matchBuild:
print( "3)macro Build found" )
return matchBuild + " " + build + "\n"
else:
return line;
fileProcess("tinyxml2.h", macroVersionRule)
#### Write the dox ####
@@ -113,7 +135,7 @@ def cmakeRule2( line ):
fileProcess( "CMakeLists.txt", cmakeRule2 )
print( "Release note:" )
print( '1. Build. g++ -Wall -DDEBUG tinyxml2.cpp xmltest.cpp -o gccxmltest.exe' )
print( '1. Build. g++ -Wall -DTINYXML2_DEBUG tinyxml2.cpp xmltest.cpp -o gccxmltest.exe' )
print( '2. Commit. git commit -am"setting the version to ' + versionStr + '"' )
print( '3. Tag. git tag ' + versionStr )
print( ' OR git tag -a ' + versionStr + ' -m [tag message]' )

View File

@@ -760,7 +760,7 @@ XMLNode::~XMLNode()
}
}
const char* XMLNode::Value() const
const char* XMLNode::Value() const
{
// Edge case: XMLDocuments don't have a Value. Return null.
if ( this->ToDocument() )
@@ -1004,7 +1004,11 @@ char* XMLNode::ParseDeep( char* p, StrPair* parentEndTag, int* curLineNumPtr )
// 'endTag' is the end tag for this node, it is returned by a call to a child.
// 'parentEnd' is the end tag for the parent, which is filled in and returned.
while( p && *p ) {
XMLDocument::DepthTracker tracker(_document);
if (_document->Error())
return 0;
while( p && *p ) {
XMLNode* node = 0;
p = _document->Identify( p, &node );
@@ -1329,12 +1333,12 @@ bool XMLUnknown::Accept( XMLVisitor* visitor ) const
// --------- XMLAttribute ---------- //
const char* XMLAttribute::Name() const
const char* XMLAttribute::Name() const
{
return _name.GetStr();
}
const char* XMLAttribute::Value() const
const char* XMLAttribute::Value() const
{
return _value.GetStr();
}
@@ -1521,42 +1525,42 @@ const char* XMLElement::Attribute( const char* name, const char* value ) const
return 0;
}
int XMLElement::IntAttribute(const char* name, int defaultValue) const
int XMLElement::IntAttribute(const char* name, int defaultValue) const
{
int i = defaultValue;
QueryIntAttribute(name, &i);
return i;
}
unsigned XMLElement::UnsignedAttribute(const char* name, unsigned defaultValue) const
unsigned XMLElement::UnsignedAttribute(const char* name, unsigned defaultValue) const
{
unsigned i = defaultValue;
QueryUnsignedAttribute(name, &i);
return i;
}
int64_t XMLElement::Int64Attribute(const char* name, int64_t defaultValue) const
int64_t XMLElement::Int64Attribute(const char* name, int64_t defaultValue) const
{
int64_t i = defaultValue;
QueryInt64Attribute(name, &i);
return i;
}
bool XMLElement::BoolAttribute(const char* name, bool defaultValue) const
bool XMLElement::BoolAttribute(const char* name, bool defaultValue) const
{
bool b = defaultValue;
QueryBoolAttribute(name, &b);
return b;
}
double XMLElement::DoubleAttribute(const char* name, double defaultValue) const
double XMLElement::DoubleAttribute(const char* name, double defaultValue) const
{
double d = defaultValue;
QueryDoubleAttribute(name, &d);
return d;
}
float XMLElement::FloatAttribute(const char* name, float defaultValue) const
float XMLElement::FloatAttribute(const char* name, float defaultValue) const
{
float f = defaultValue;
QueryFloatAttribute(name, &f);
@@ -1583,7 +1587,7 @@ void XMLElement::SetText( const char* inText )
}
void XMLElement::SetText( int v )
void XMLElement::SetText( int v )
{
char buf[BUF_SIZE];
XMLUtil::ToStr( v, buf, BUF_SIZE );
@@ -1591,7 +1595,7 @@ void XMLElement::SetText( int v )
}
void XMLElement::SetText( unsigned v )
void XMLElement::SetText( unsigned v )
{
char buf[BUF_SIZE];
XMLUtil::ToStr( v, buf, BUF_SIZE );
@@ -1615,7 +1619,7 @@ void XMLElement::SetText( bool v )
}
void XMLElement::SetText( float v )
void XMLElement::SetText( float v )
{
char buf[BUF_SIZE];
XMLUtil::ToStr( v, buf, BUF_SIZE );
@@ -1623,7 +1627,7 @@ void XMLElement::SetText( float v )
}
void XMLElement::SetText( double v )
void XMLElement::SetText( double v )
{
char buf[BUF_SIZE];
XMLUtil::ToStr( v, buf, BUF_SIZE );
@@ -1986,7 +1990,8 @@ const char* XMLDocument::_errorNames[XML_ERROR_COUNT] = {
"XML_ERROR_MISMATCHED_ELEMENT",
"XML_ERROR_PARSING",
"XML_CAN_NOT_CONVERT_TEXT",
"XML_NO_TEXT_NODE"
"XML_NO_TEXT_NODE",
"XML_ELEMENT_DEPTH_EXCEEDED"
};
@@ -2000,6 +2005,7 @@ XMLDocument::XMLDocument( bool processEntities, Whitespace whitespaceMode ) :
_errorLineNum( 0 ),
_charBuffer( 0 ),
_parseCurLineNum( 0 ),
_parsingDepth(0),
_unlinked(),
_elementPool(),
_attributePool(),
@@ -2037,13 +2043,14 @@ void XMLDocument::Clear()
DeleteNode(_unlinked[0]); // Will remove from _unlinked as part of delete.
}
#ifdef DEBUG
#ifdef TINYXML2_DEBUG
const bool hadError = Error();
#endif
ClearError();
delete [] _charBuffer;
_charBuffer = 0;
_parsingDepth = 0;
#if 0
_textPool.Trace( "text" );
@@ -2051,8 +2058,8 @@ void XMLDocument::Clear()
_commentPool.Trace( "comment" );
_attributePool.Trace( "attribute" );
#endif
#ifdef DEBUG
#ifdef TINYXML2_DEBUG
if ( !hadError ) {
TIXMLASSERT( _elementPool.CurrentAllocs() == _elementPool.Untracked() );
TIXMLASSERT( _attributePool.CurrentAllocs() == _attributePool.Untracked() );
@@ -2130,7 +2137,7 @@ static FILE* callfopen( const char* filepath, const char* mode )
#endif
return fp;
}
void XMLDocument::DeleteNode( XMLNode* node ) {
TIXMLASSERT( node );
TIXMLASSERT(node->_document == this );
@@ -2151,10 +2158,16 @@ void XMLDocument::DeleteNode( XMLNode* node ) {
XMLError XMLDocument::LoadFile( const char* filename )
{
if ( !filename ) {
TIXMLASSERT( false );
SetError( XML_ERROR_FILE_COULD_NOT_BE_OPENED, 0, "filename=<null>" );
return _errorID;
}
Clear();
FILE* fp = callfopen( filename, "rb" );
if ( !fp ) {
SetError( XML_ERROR_FILE_NOT_FOUND, 0, "filename=%s", filename ? filename : "<null>");
SetError( XML_ERROR_FILE_NOT_FOUND, 0, "filename=%s", filename );
return _errorID;
}
LoadFile( fp );
@@ -2233,9 +2246,15 @@ XMLError XMLDocument::LoadFile( FILE* fp )
XMLError XMLDocument::SaveFile( const char* filename, bool compact )
{
if ( !filename ) {
TIXMLASSERT( false );
SetError( XML_ERROR_FILE_COULD_NOT_BE_OPENED, 0, "filename=<null>" );
return _errorID;
}
FILE* fp = callfopen( filename, "w" );
if ( !fp ) {
SetError( XML_ERROR_FILE_COULD_NOT_BE_OPENED, 0, "filename=%s", filename ? filename : "<null>");
SetError( XML_ERROR_FILE_COULD_NOT_BE_OPENED, 0, "filename=%s", filename );
return _errorID;
}
SaveFile(fp, compact);
@@ -2305,20 +2324,23 @@ void XMLDocument::SetError( XMLError error, int lineNum, const char* format, ...
_errorLineNum = lineNum;
_errorStr.Reset();
if (format) {
size_t BUFFER_SIZE = 1000;
char* buffer = new char[BUFFER_SIZE];
TIXML_SNPRINTF(buffer, BUFFER_SIZE, "Error=%s ErrorID=%d (0x%x) Line number=%d: ", ErrorIDToName(error), int(error), int(error), lineNum);
size_t len = strlen(buffer);
size_t BUFFER_SIZE = 1000;
char* buffer = new char[BUFFER_SIZE];
va_list va;
va_start( va, format );
TIXML_VSNPRINTF( buffer + len, BUFFER_SIZE - len, format, va );
va_end( va );
TIXML_SNPRINTF(buffer, BUFFER_SIZE, "Error=%s ErrorID=%d (0x%x) Line number=%d", ErrorIDToName(error), int(error), int(error), lineNum);
_errorStr.SetStr(buffer);
delete [] buffer;
}
if (format) {
size_t len = strlen(buffer);
TIXML_SNPRINTF(buffer + len, BUFFER_SIZE - len, ": ");
len = strlen(buffer);
va_list va;
va_start(va, format);
TIXML_VSNPRINTF(buffer + len, BUFFER_SIZE - len, format, va);
va_end(va);
}
_errorStr.SetStr(buffer);
delete[] buffer;
}
@@ -2330,7 +2352,7 @@ void XMLDocument::SetError( XMLError error, int lineNum, const char* format, ...
return errorName;
}
const char* XMLDocument::ErrorStr() const
const char* XMLDocument::ErrorStr() const
{
return _errorStr.Empty() ? "" : _errorStr.GetStr();
}
@@ -2362,6 +2384,20 @@ void XMLDocument::Parse()
ParseDeep(p, 0, &_parseCurLineNum );
}
void XMLDocument::PushDepth()
{
_parsingDepth++;
if (_parsingDepth == TINYXML2_MAX_ELEMENT_DEPTH) {
SetError(XML_ELEMENT_DEPTH_EXCEEDED, _parseCurLineNum, "Element nesting is too deep." );
}
}
void XMLDocument::PopDepth()
{
TIXMLASSERT(_parsingDepth > 0);
--_parsingDepth;
}
XMLPrinter::XMLPrinter( FILE* file, bool compact, int depth ) :
_elementJustOpened( false ),
_stack(),
@@ -2788,4 +2824,3 @@ bool XMLPrinter::Visit( const XMLUnknown& unknown )
}
} // namespace tinyxml2

View File

@@ -47,15 +47,15 @@ distribution.
*/
/*
gcc:
g++ -Wall -DDEBUG tinyxml2.cpp xmltest.cpp -o gccxmltest.exe
g++ -Wall -DTINYXML2_DEBUG tinyxml2.cpp xmltest.cpp -o gccxmltest.exe
Formatting, Artistic Style:
AStyle.exe --style=1tbs --indent-switches --break-closing-brackets --indent-preprocessor tinyxml2.cpp tinyxml2.h
*/
#if defined( _DEBUG ) || defined (__DEBUG__)
# ifndef DEBUG
# define DEBUG
# ifndef TINYXML2_DEBUG
# define TINYXML2_DEBUG
# endif
#endif
@@ -79,7 +79,7 @@ distribution.
#endif
#if defined(DEBUG)
#if defined(TINYXML2_DEBUG)
# if defined(_MSC_VER)
# // "(void)0," is for suppressing C4127 warning in "assert(false)", "assert(true)" and the like
# define TIXMLASSERT( x ) if ( !((void)0,(x))) { __debugbreak(); }
@@ -99,9 +99,20 @@ distribution.
http://semver.org/
*/
static const int TIXML2_MAJOR_VERSION = 6;
static const int TIXML2_MINOR_VERSION = 0;
static const int TIXML2_MINOR_VERSION = 2;
static const int TIXML2_PATCH_VERSION = 0;
#define TINYXML2_MAJOR_VERSION 6
#define TINYXML2_MINOR_VERSION 2
#define TINYXML2_PATCH_VERSION 0
// A fixed element depth limit is problematic. There needs to be a
// limit to avoid a stack overflow. However, that limit varies per
// system, and the capacity of the stack. On the other hand, it's a trivial
// attack that can result from ill, malicious, or even correctly formed XML,
// so there needs to be a limit in place.
static const int TINYXML2_MAX_ELEMENT_DEPTH = 100;
namespace tinyxml2
{
class XMLDocument;
@@ -391,7 +402,7 @@ public:
}
--_currentAllocs;
Item* item = static_cast<Item*>( mem );
#ifdef DEBUG
#ifdef TINYXML2_DEBUG
memset( item, 0xfe, sizeof( *item ) );
#endif
item->next = _root;
@@ -528,6 +539,7 @@ enum XMLError {
XML_ERROR_PARSING,
XML_CAN_NOT_CONVERT_TEXT,
XML_NO_TEXT_NODE,
XML_ELEMENT_DEPTH_EXCEEDED,
XML_ERROR_COUNT
};
@@ -1361,6 +1373,17 @@ public:
return a->QueryFloatValue( value );
}
/// See QueryIntAttribute()
XMLError QueryStringAttribute(const char* name, const char** value) const {
const XMLAttribute* a = FindAttribute(name);
if (!a) {
return XML_NO_ATTRIBUTE;
}
*value = a->Value();
return XML_SUCCESS;
}
/** Given an attribute name, QueryAttribute() returns
XML_SUCCESS, XML_WRONG_ATTRIBUTE_TYPE if the conversion
@@ -1635,7 +1658,7 @@ enum Whitespace {
class TINYXML2_LIB XMLDocument : public XMLNode
{
friend class XMLElement;
// Gives access to SetError, but over-access for everything else.
// Gives access to SetError and Push/PopDepth, but over-access for everything else.
// Wishing C++ had "internal" scope.
friend class XMLNode;
friend class XMLText;
@@ -1859,6 +1882,7 @@ private:
int _errorLineNum;
char* _charBuffer;
int _parseCurLineNum;
int _parsingDepth;
// Memory tracking does add some overhead.
// However, the code assumes that you don't
// have a bunch of unlinked nodes around.
@@ -1878,6 +1902,24 @@ private:
void SetError( XMLError error, int lineNum, const char* format, ... );
// Something of an obvious security hole, once it was discovered.
// Either an ill-formed XML or an excessively deep one can overflow
// the stack. Track stack depth, and error out if needed.
class DepthTracker {
public:
DepthTracker(XMLDocument * document) {
this->_document = document;
document->PushDepth();
}
~DepthTracker() {
_document->PopDepth();
}
private:
XMLDocument * _document;
};
void PushDepth();
void PopDepth();
template<class NodeType, int PoolElementSize>
NodeType* CreateUnlinkedNode( MemPoolT<PoolElementSize>& pool );
};

View File

@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
<Project DefaultTargets="Build" ToolsVersion="14.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<Project DefaultTargets="Build" ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup Label="ProjectConfigurations">
<ProjectConfiguration Include="Debug-Dll|Win32">
<Configuration>Debug-Dll</Configuration>
@@ -37,60 +37,60 @@
<PropertyGroup Label="Globals">
<ProjectGuid>{E8FB2712-8666-4662-A5B8-2B5B0FB1A260}</ProjectGuid>
<RootNamespace>test</RootNamespace>
<WindowsTargetPlatformVersion>8.1</WindowsTargetPlatformVersion>
<WindowsTargetPlatformVersion>10.0.16299.0</WindowsTargetPlatformVersion>
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug-Lib|Win32'" Label="Configuration">
<ConfigurationType>Application</ConfigurationType>
<UseDebugLibraries>true</UseDebugLibraries>
<CharacterSet>Unicode</CharacterSet>
<PlatformToolset>v140</PlatformToolset>
<PlatformToolset>v141</PlatformToolset>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug-Lib|x64'" Label="Configuration">
<ConfigurationType>Application</ConfigurationType>
<UseDebugLibraries>true</UseDebugLibraries>
<CharacterSet>Unicode</CharacterSet>
<PlatformToolset>v140</PlatformToolset>
<PlatformToolset>v141</PlatformToolset>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug-Dll|Win32'" Label="Configuration">
<ConfigurationType>Application</ConfigurationType>
<UseDebugLibraries>true</UseDebugLibraries>
<CharacterSet>Unicode</CharacterSet>
<PlatformToolset>v140</PlatformToolset>
<PlatformToolset>v141</PlatformToolset>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug-Dll|x64'" Label="Configuration">
<ConfigurationType>Application</ConfigurationType>
<UseDebugLibraries>true</UseDebugLibraries>
<CharacterSet>Unicode</CharacterSet>
<PlatformToolset>v140</PlatformToolset>
<PlatformToolset>v141</PlatformToolset>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release-Lib|Win32'" Label="Configuration">
<ConfigurationType>Application</ConfigurationType>
<UseDebugLibraries>false</UseDebugLibraries>
<WholeProgramOptimization>true</WholeProgramOptimization>
<CharacterSet>Unicode</CharacterSet>
<PlatformToolset>v140</PlatformToolset>
<PlatformToolset>v141</PlatformToolset>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release-Lib|x64'" Label="Configuration">
<ConfigurationType>Application</ConfigurationType>
<UseDebugLibraries>false</UseDebugLibraries>
<WholeProgramOptimization>true</WholeProgramOptimization>
<CharacterSet>Unicode</CharacterSet>
<PlatformToolset>v140</PlatformToolset>
<PlatformToolset>v141</PlatformToolset>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release-Dll|Win32'" Label="Configuration">
<ConfigurationType>Application</ConfigurationType>
<UseDebugLibraries>false</UseDebugLibraries>
<WholeProgramOptimization>true</WholeProgramOptimization>
<CharacterSet>Unicode</CharacterSet>
<PlatformToolset>v140</PlatformToolset>
<PlatformToolset>v141</PlatformToolset>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release-Dll|x64'" Label="Configuration">
<ConfigurationType>Application</ConfigurationType>
<UseDebugLibraries>false</UseDebugLibraries>
<WholeProgramOptimization>true</WholeProgramOptimization>
<CharacterSet>Unicode</CharacterSet>
<PlatformToolset>v140</PlatformToolset>
<PlatformToolset>v141</PlatformToolset>
</PropertyGroup>
<PropertyGroup Label="Configuration" Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
<CharacterSet>Unicode</CharacterSet>

View File

@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
<Project DefaultTargets="Build" ToolsVersion="14.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<Project DefaultTargets="Build" ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup Label="ProjectConfigurations">
<ProjectConfiguration Include="Debug-Dll|Win32">
<Configuration>Debug-Dll</Configuration>
@@ -38,60 +38,60 @@
<ProjectGuid>{D1C528B6-AA02-4D29-9D61-DC08E317A70D}</ProjectGuid>
<Keyword>Win32Proj</Keyword>
<RootNamespace>tinyxml2</RootNamespace>
<WindowsTargetPlatformVersion>8.1</WindowsTargetPlatformVersion>
<WindowsTargetPlatformVersion>10.0.16299.0</WindowsTargetPlatformVersion>
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug-Lib|Win32'" Label="Configuration">
<ConfigurationType>StaticLibrary</ConfigurationType>
<UseDebugLibraries>true</UseDebugLibraries>
<CharacterSet>Unicode</CharacterSet>
<PlatformToolset>v140</PlatformToolset>
<PlatformToolset>v141</PlatformToolset>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug-Dll|Win32'" Label="Configuration">
<ConfigurationType>DynamicLibrary</ConfigurationType>
<UseDebugLibraries>true</UseDebugLibraries>
<CharacterSet>Unicode</CharacterSet>
<PlatformToolset>v140</PlatformToolset>
<PlatformToolset>v141</PlatformToolset>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug-Lib|x64'" Label="Configuration">
<ConfigurationType>StaticLibrary</ConfigurationType>
<UseDebugLibraries>true</UseDebugLibraries>
<CharacterSet>Unicode</CharacterSet>
<PlatformToolset>v140</PlatformToolset>
<PlatformToolset>v141</PlatformToolset>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug-Dll|x64'" Label="Configuration">
<ConfigurationType>DynamicLibrary</ConfigurationType>
<UseDebugLibraries>true</UseDebugLibraries>
<CharacterSet>Unicode</CharacterSet>
<PlatformToolset>v140</PlatformToolset>
<PlatformToolset>v141</PlatformToolset>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release-Lib|Win32'" Label="Configuration">
<ConfigurationType>StaticLibrary</ConfigurationType>
<UseDebugLibraries>false</UseDebugLibraries>
<WholeProgramOptimization>true</WholeProgramOptimization>
<CharacterSet>Unicode</CharacterSet>
<PlatformToolset>v140</PlatformToolset>
<PlatformToolset>v141</PlatformToolset>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release-Dll|Win32'" Label="Configuration">
<ConfigurationType>DynamicLibrary</ConfigurationType>
<UseDebugLibraries>false</UseDebugLibraries>
<WholeProgramOptimization>true</WholeProgramOptimization>
<CharacterSet>Unicode</CharacterSet>
<PlatformToolset>v140</PlatformToolset>
<PlatformToolset>v141</PlatformToolset>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release-Lib|x64'" Label="Configuration">
<ConfigurationType>StaticLibrary</ConfigurationType>
<UseDebugLibraries>false</UseDebugLibraries>
<WholeProgramOptimization>true</WholeProgramOptimization>
<CharacterSet>Unicode</CharacterSet>
<PlatformToolset>v140</PlatformToolset>
<PlatformToolset>v141</PlatformToolset>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release-Dll|x64'" Label="Configuration">
<ConfigurationType>DynamicLibrary</ConfigurationType>
<UseDebugLibraries>false</UseDebugLibraries>
<WholeProgramOptimization>true</WholeProgramOptimization>
<CharacterSet>Unicode</CharacterSet>
<PlatformToolset>v140</PlatformToolset>
<PlatformToolset>v141</PlatformToolset>
</PropertyGroup>
<PropertyGroup Label="Configuration" Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
<ConfigurationType>StaticLibrary</ConfigurationType>

View File

@@ -137,7 +137,7 @@
buildSettings = {
CONFIGURATION_BUILD_DIR = "$(SYMROOT)/Debug";
COPY_PHASE_STRIP = NO;
"GCC_PREPROCESSOR_DEFINITIONS[arch=*]" = DEBUG;
"GCC_PREPROCESSOR_DEFINITIONS[arch=*]" = TINYXML2_DEBUG;
ONLY_ACTIVE_ARCH = YES;
SYMROOT = build;
};

View File

@@ -112,7 +112,7 @@ int example_1()
return doc.ErrorID();
}
/** @page Example-1 Load an XML File
/** @page Example_1 Load an XML File
* @dontinclude ./xmltest.cpp
* Basic XML file loading.
* The basic syntax to load an XML file from
@@ -131,7 +131,7 @@ int example_2()
return doc.ErrorID();
}
/** @page Example-2 Parse an XML from char buffer
/** @page Example_2 Parse an XML from char buffer
* @dontinclude ./xmltest.cpp
* Basic XML string parsing.
* The basic syntax to parse an XML for
@@ -164,7 +164,7 @@ int example_3()
return doc.ErrorID();
}
/** @page Example-3 Get information out of XML
/** @page Example_3 Get information out of XML
@dontinclude ./xmltest.cpp
In this example, we navigate a simple XML
file, and read some interesting text. Note
@@ -255,7 +255,7 @@ bool example_4()
return !doc.Error() && ( v0 == v1 );
}
/** @page Example-4 Read attributes and text information.
/** @page Example_4 Read attributes and text information.
@dontinclude ./xmltest.cpp
There are fundamentally 2 ways of writing a key-value
@@ -292,7 +292,7 @@ bool example_4()
int main( int argc, const char ** argv )
{
#if defined( _MSC_VER ) && defined( DEBUG )
#if defined( _MSC_VER ) && defined( TINYXML2_DEBUG )
_CrtMemCheckpoint( &startMemState );
// Enable MS Visual C++ debug heap memory leaks dump on exit
_CrtSetDbgFlag(_CrtSetDbgFlag(_CRTDBG_REPORT_FLAG) | _CRTDBG_LEAK_CHECK_DF);
@@ -338,10 +338,10 @@ int main( int argc, const char ** argv )
}
fclose( fp );
XMLTest( "Example-1", 0, example_1() );
XMLTest( "Example-2", 0, example_2() );
XMLTest( "Example-3", 0, example_3() );
XMLTest( "Example-4", true, example_4() );
XMLTest( "Example_1", 0, example_1() );
XMLTest( "Example_2", 0, example_2() );
XMLTest( "Example_3", 0, example_3() );
XMLTest( "Example_4", true, example_4() );
/* ------ Example 2: Lookup information. ---- */
@@ -535,7 +535,7 @@ int main( int argc, const char ** argv )
XMLTest( "Dream", "xml version=\"1.0\"",
doc.FirstChild()->ToDeclaration()->Value() );
XMLTest( "Dream", true, doc.FirstChild()->NextSibling()->ToUnknown() ? true : false );
XMLTest( "Dream", true, doc.FirstChild()->NextSibling()->ToUnknown() != 0 );
XMLTest( "Dream", "DOCTYPE PLAY SYSTEM \"play.dtd\"",
doc.FirstChild()->NextSibling()->ToUnknown()->Value() );
XMLTest( "Dream", "And Robin shall restore amends.",
@@ -548,7 +548,7 @@ int main( int argc, const char ** argv )
XMLTest( "Load dreamout.xml", false, doc2.Error() );
XMLTest( "Dream-out", "xml version=\"1.0\"",
doc2.FirstChild()->ToDeclaration()->Value() );
XMLTest( "Dream-out", true, doc2.FirstChild()->NextSibling()->ToUnknown() ? true : false );
XMLTest( "Dream-out", true, doc2.FirstChild()->NextSibling()->ToUnknown() != 0 );
XMLTest( "Dream-out", "DOCTYPE PLAY SYSTEM \"play.dtd\"",
doc2.FirstChild()->NextSibling()->ToUnknown()->Value() );
XMLTest( "Dream-out", "And Robin shall restore amends.",
@@ -567,6 +567,10 @@ int main( int argc, const char ** argv )
XMLDocument doc;
doc.Parse( error );
XMLTest( "Bad XML", XML_ERROR_PARSING_ATTRIBUTE, doc.ErrorID() );
const char* errorStr = doc.ErrorStr();
XMLTest("Formatted error string",
"Error=XML_ERROR_PARSING_ATTRIBUTE ErrorID=8 (0x8) Line number=3: XMLElement name=wrong",
errorStr);
}
{
@@ -827,6 +831,14 @@ int main( int argc, const char ** argv )
XMLTest("Attribute: unsigned", (int)XML_SUCCESS, queryResult, true);
XMLTest("Attribute: unsigned", unsigned(100), v, true);
}
{
const char* v = "failed";
XMLError queryResult = element->QueryStringAttribute("not-attrib", &v);
XMLTest("Attribute: string default", false, queryResult == XML_SUCCESS);
queryResult = element->QueryStringAttribute("attrib", &v);
XMLTest("Attribute: string", XML_SUCCESS, queryResult, true);
XMLTest("Attribute: string", "100", v);
}
XMLTest("Attribute: unsigned", unsigned(100), element->UnsignedAttribute("attrib"), true);
}
{
@@ -1160,6 +1172,12 @@ int main( int argc, const char ** argv )
XMLDocument doc;
doc.Parse( str );
XMLTest( "Empty document error", XML_ERROR_EMPTY_DOCUMENT, doc.ErrorID() );
// But be sure there is an error string!
const char* errorStr = doc.ErrorStr();
XMLTest("Error string should be set",
"Error=XML_ERROR_EMPTY_DOCUMENT ErrorID=15 (0xf) Line number=0",
errorStr);
}
{
@@ -1452,28 +1470,31 @@ int main( int argc, const char ** argv )
static const char* xml = "<element attrib='bar'><sub>Text</sub></element>";
XMLDocument doc;
doc.Parse( xml );
XMLTest( "Parse element with attribute and nested element round 1", false, doc.Error() );
XMLTest( "Handle, parse element with attribute and nested element", false, doc.Error() );
XMLElement* ele = XMLHandle( doc ).FirstChildElement( "element" ).FirstChild().ToElement();
XMLTest( "Handle, success, mutable", "sub", ele->Value() );
{
XMLElement* ele = XMLHandle( doc ).FirstChildElement( "element" ).FirstChild().ToElement();
XMLTest( "Handle, non-const, element is found", true, ele != 0 );
XMLTest( "Handle, non-const, element name matches", "sub", ele->Value() );
}
XMLHandle docH( doc );
ele = docH.FirstChildElement( "none" ).FirstChildElement( "element" ).ToElement();
XMLTest( "Handle, dne, mutable", true, ele == 0 );
}
{
XMLHandle docH( doc );
XMLElement* ele = docH.FirstChildElement( "noSuchElement" ).FirstChildElement( "element" ).ToElement();
XMLTest( "Handle, non-const, element not found", true, ele == 0 );
}
{
static const char* xml = "<element attrib='bar'><sub>Text</sub></element>";
XMLDocument doc;
doc.Parse( xml );
XMLTest( "Parse element with attribute and nested element round 2", false, doc.Error() );
XMLConstHandle docH( doc );
{
const XMLElement* ele = XMLConstHandle( doc ).FirstChildElement( "element" ).FirstChild().ToElement();
XMLTest( "Handle, const, element is found", true, ele != 0 );
XMLTest( "Handle, const, element name matches", "sub", ele->Value() );
}
const XMLElement* ele = docH.FirstChildElement( "element" ).FirstChild().ToElement();
XMLTest( "Handle, success, const", "sub", ele->Value() );
ele = docH.FirstChildElement( "none" ).FirstChildElement( "element" ).ToElement();
XMLTest( "Handle, dne, const", true, ele == 0 );
{
XMLConstHandle docH( doc );
const XMLElement* ele = docH.FirstChildElement( "noSuchElement" ).FirstChildElement( "element" ).ToElement();
XMLTest( "Handle, const, element not found", true, ele == 0 );
}
}
{
// Default Declaration & BOM
@@ -1843,7 +1864,7 @@ int main( int argc, const char ** argv )
}
{
// If this doesn't assert in DEBUG, all is well.
// If this doesn't assert in TINYXML2_DEBUG, all is well.
tinyxml2::XMLDocument doc;
tinyxml2::XMLElement *pRoot = doc.NewElement("Root");
doc.DeleteNode(pRoot);
@@ -1858,7 +1879,7 @@ int main( int argc, const char ** argv )
}
{
// If this doesn't assert in DEBUG, all is well.
// If this doesn't assert in TINYXML2_DEBUG, all is well.
XMLDocument doc;
XMLElement* unlinkedRoot = doc.NewElement( "Root" );
XMLElement* linkedRoot = doc.NewElement( "Root" );
@@ -1868,7 +1889,7 @@ int main( int argc, const char ** argv )
}
{
// Should not assert in DEBUG
// Should not assert in TINYXML2_DEBUG
XMLPrinter printer;
}
@@ -1936,7 +1957,7 @@ int main( int argc, const char ** argv )
doc.Parse(xml1);
XMLTest("Test that the second declaration is allowed", false, doc.Error() );
doc.Parse(xml2);
XMLTest("Test that declaration after a child is not allowed", XML_ERROR_PARSING_DECLARATION, doc.ErrorID() );
XMLTest("Test that declaration after self-closed child is not allowed", XML_ERROR_PARSING_DECLARATION, doc.ErrorID() );
doc.Parse(xml3);
XMLTest("Test that declaration after a child is not allowed", XML_ERROR_PARSING_DECLARATION, doc.ErrorID() );
doc.Parse(xml4);
@@ -1963,8 +1984,14 @@ int main( int argc, const char ** argv )
for( int i = 0; i < XML_ERROR_COUNT; i++ ) {
const XMLError error = static_cast<XMLError>(i);
const char* name = XMLDocument::ErrorIDToName(error);
XMLTest( "ErrorName() after ClearError()", true, name != 0 );
XMLTest( "ErrorName() after ClearError()", true, strlen(name) > 0 );
XMLTest( "ErrorName() not null after ClearError()", true, name != 0 );
if( name == 0 ) {
// passing null pointer into strlen() is undefined behavior, so
// compiler is allowed to optimise away the null test above if it's
// as reachable as the strlen() call
continue;
}
XMLTest( "ErrorName() not empty after ClearError()", true, strlen(name) > 0 );
}
}
@@ -1998,6 +2025,20 @@ int main( int argc, const char ** argv )
}
}
{
// Bad bad crash. Parsing error results in stack overflow, if uncaught.
const char* TESTS[] = {
"./resources/xmltest-5330.xml",
"./resources/xmltest-4636783552757760.xml",
"./resources/xmltest-5720541257269248.xml",
0
};
for (int i=0; TESTS[i]; ++i) {
XMLDocument doc;
doc.LoadFile(TESTS[i]);
XMLTest("Stack overflow prevented.", XML_ELEMENT_DEPTH_EXCEEDED, doc.ErrorID());
}
}
{
// Crashing reported via email.
const char* xml =
@@ -2248,7 +2289,7 @@ int main( int argc, const char ** argv )
delete[] mem;
static const char* note =
#ifdef DEBUG
#ifdef TINYXML2_DEBUG
"DEBUG";
#else
"Release";
@@ -2262,7 +2303,7 @@ int main( int argc, const char ** argv )
printf("\nParsing dream.xml (%s): %.3f milli-seconds\n", note, duration);
}
#if defined( _MSC_VER ) && defined( DEBUG )
#if defined( _MSC_VER ) && defined( TINYXML2_DEBUG )
{
_CrtMemCheckpoint( &endMemState );