Bools should really be implemented as self-closing <true /> and <false /> tags, not as 0/1 inside a tag, so removing those SetText variants again, in favor of SetBoolFirstChild() and BoolFirstChild() methods.
diff --git a/tinyxml2.cpp b/tinyxml2.cpp
index 5e3f4aa..efcc8c7 100755
--- a/tinyxml2.cpp
+++ b/tinyxml2.cpp
@@ -1297,19 +1297,6 @@
 }

 

 

-void	XMLElement::SetText( bool inBool )

-{

-    char buf[BUF_SIZE];

-    XMLUtil::ToStr( inBool, buf, BUF_SIZE );

-	if ( FirstChild() && FirstChild()->ToText() )

-		FirstChild()->SetValue( buf );

-	else {

-		XMLText*	theText = GetDocument()->NewText( buf );

-		InsertFirstChild( theText );

-	}

-}

-

-

 void	XMLElement::SetText( double inNum )

 {

     char buf[BUF_SIZE];

@@ -1336,6 +1323,29 @@
 }

 

 

+void	XMLElement::SetBoolFirstChild( bool inBool )

+{

+	if( FirstChild() && FirstChild()->ToElement()

+		&& (strcmp(FirstChild()->Value(),"true") == 0 || strcmp(FirstChild()->Value(),"false") == 0) ) {

+		FirstChild()->SetValue( inBool ? "true" : "false" );

+	}

+	else if( !FirstChild() ) {

+		XMLElement*	theText = GetDocument()->NewElement( inBool ? "true" : "false" );

+		InsertFirstChild( theText );

+	}

+}

+

+

+bool	XMLElement::BoolFirstChild()

+{

+	if ( FirstChild() && FirstChild()->ToElement() ) {

+		return strcmp( FirstChild()->Value(), "true" ) == 0;

+	}

+	

+	return false;

+}

+

+

 XMLError XMLElement::QueryIntText( int* ival ) const

 {

     if ( FirstChild() && FirstChild()->ToText() ) {

diff --git a/tinyxml2.h b/tinyxml2.h
index 1c60766..0492a29 100755
--- a/tinyxml2.h
+++ b/tinyxml2.h
@@ -1411,9 +1411,6 @@
     /// Sets the text to the given number.

 	void	SetText( unsigned inNum );

 

-    /// Sets the text to the given boolean.

-	void	SetText( bool inBool );

-	

     /// Sets the text to the given double.

 	void	SetText( double inNum );

 

@@ -1421,6 +1418,11 @@
 	void	SetText( float inNum );

 

 

+    /// Adds a sub-element equivalent to the given boolean.

+	void	SetBoolFirstChild( bool inBool );

+	

+	bool	BoolFirstChild();

+	

     /**

     	Convenience method to query the value of a child text node. This is probably best

     	shown by example. Given you have a document is this form: