Merge branch 'cugone-master'
This commit is contained in:
83
tinyxml2.cpp
83
tinyxml2.cpp
@@ -582,12 +582,17 @@ void XMLUtil::ToStr( double v, char* buffer, int bufferSize )
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
void XMLUtil::ToStr(int64_t v, char* buffer, int bufferSize)
|
void XMLUtil::ToStr( int64_t v, char* buffer, int bufferSize )
|
||||||
{
|
{
|
||||||
// horrible syntax trick to make the compiler happy about %lld
|
// horrible syntax trick to make the compiler happy about %lld
|
||||||
TIXML_SNPRINTF(buffer, bufferSize, "%lld", (long long)v);
|
TIXML_SNPRINTF(buffer, bufferSize, "%lld", (long long)v);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void XMLUtil::ToStr( uint64_t v, char* buffer, int bufferSize )
|
||||||
|
{
|
||||||
|
// horrible syntax trick to make the compiler happy about %llu
|
||||||
|
TIXML_SNPRINTF(buffer, bufferSize, "%llu", (long long)v);
|
||||||
|
}
|
||||||
|
|
||||||
bool XMLUtil::ToInt( const char* str, int* value )
|
bool XMLUtil::ToInt( const char* str, int* value )
|
||||||
{
|
{
|
||||||
@@ -660,6 +665,16 @@ bool XMLUtil::ToInt64(const char* str, int64_t* value)
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
bool XMLUtil::ToUnsigned64(const char* str, uint64_t* value) {
|
||||||
|
unsigned long long v = 0; // horrible syntax trick to make the compiler happy about %llu
|
||||||
|
if(TIXML_SSCANF(str, "%llu", &v) == 1) {
|
||||||
|
*value = (uint64_t)v;
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
char* XMLDocument::Identify( char* p, XMLNode** node )
|
char* XMLDocument::Identify( char* p, XMLNode** node )
|
||||||
{
|
{
|
||||||
TIXMLASSERT( node );
|
TIXMLASSERT( node );
|
||||||
@@ -1421,6 +1436,15 @@ XMLError XMLAttribute::QueryInt64Value(int64_t* value) const
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
XMLError XMLAttribute::QueryUnsigned64Value(uint64_t* value) const
|
||||||
|
{
|
||||||
|
if(XMLUtil::ToUnsigned64(Value(), value)) {
|
||||||
|
return XML_SUCCESS;
|
||||||
|
}
|
||||||
|
return XML_WRONG_ATTRIBUTE_TYPE;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
XMLError XMLAttribute::QueryBoolValue( bool* value ) const
|
XMLError XMLAttribute::QueryBoolValue( bool* value ) const
|
||||||
{
|
{
|
||||||
if ( XMLUtil::ToBool( Value(), value )) {
|
if ( XMLUtil::ToBool( Value(), value )) {
|
||||||
@@ -1477,6 +1501,12 @@ void XMLAttribute::SetAttribute(int64_t v)
|
|||||||
_value.SetStr(buf);
|
_value.SetStr(buf);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void XMLAttribute::SetAttribute(uint64_t v)
|
||||||
|
{
|
||||||
|
char buf[BUF_SIZE];
|
||||||
|
XMLUtil::ToStr(v, buf, BUF_SIZE);
|
||||||
|
_value.SetStr(buf);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
void XMLAttribute::SetAttribute( bool v )
|
void XMLAttribute::SetAttribute( bool v )
|
||||||
@@ -1563,6 +1593,13 @@ int64_t XMLElement::Int64Attribute(const char* name, int64_t defaultValue) const
|
|||||||
return i;
|
return i;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
uint64_t XMLElement::Unsigned64Attribute(const char* name, uint64_t defaultValue) const
|
||||||
|
{
|
||||||
|
uint64_t i = defaultValue;
|
||||||
|
QueryUnsigned64Attribute(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;
|
bool b = defaultValue;
|
||||||
@@ -1627,6 +1664,12 @@ void XMLElement::SetText(int64_t v)
|
|||||||
SetText(buf);
|
SetText(buf);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void XMLElement::SetText(uint64_t v) {
|
||||||
|
char buf[BUF_SIZE];
|
||||||
|
XMLUtil::ToStr(v, buf, BUF_SIZE);
|
||||||
|
SetText(buf);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
void XMLElement::SetText( bool v )
|
void XMLElement::SetText( bool v )
|
||||||
{
|
{
|
||||||
@@ -1691,6 +1734,19 @@ XMLError XMLElement::QueryInt64Text(int64_t* ival) const
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
XMLError XMLElement::QueryUnsigned64Text(uint64_t* ival) const
|
||||||
|
{
|
||||||
|
if(FirstChild() && FirstChild()->ToText()) {
|
||||||
|
const char* t = FirstChild()->Value();
|
||||||
|
if(XMLUtil::ToUnsigned64(t, ival)) {
|
||||||
|
return XML_SUCCESS;
|
||||||
|
}
|
||||||
|
return XML_CAN_NOT_CONVERT_TEXT;
|
||||||
|
}
|
||||||
|
return XML_NO_TEXT_NODE;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
XMLError XMLElement::QueryBoolText( bool* bval ) const
|
XMLError XMLElement::QueryBoolText( bool* bval ) const
|
||||||
{
|
{
|
||||||
if ( FirstChild() && FirstChild()->ToText() ) {
|
if ( FirstChild() && FirstChild()->ToText() ) {
|
||||||
@@ -1750,6 +1806,13 @@ int64_t XMLElement::Int64Text(int64_t defaultValue) const
|
|||||||
return i;
|
return i;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
uint64_t XMLElement::Unsigned64Text(uint64_t defaultValue) const
|
||||||
|
{
|
||||||
|
uint64_t i = defaultValue;
|
||||||
|
QueryUnsigned64Text(&i);
|
||||||
|
return i;
|
||||||
|
}
|
||||||
|
|
||||||
bool XMLElement::BoolText(bool defaultValue) const
|
bool XMLElement::BoolText(bool defaultValue) const
|
||||||
{
|
{
|
||||||
bool b = defaultValue;
|
bool b = defaultValue;
|
||||||
@@ -2621,6 +2684,14 @@ void XMLPrinter::PushAttribute(const char* name, int64_t v)
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
void XMLPrinter::PushAttribute(const char* name, uint64_t v)
|
||||||
|
{
|
||||||
|
char buf[BUF_SIZE];
|
||||||
|
XMLUtil::ToStr(v, buf, BUF_SIZE);
|
||||||
|
PushAttribute(name, buf);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
void XMLPrinter::PushAttribute( const char* name, bool v )
|
void XMLPrinter::PushAttribute( const char* name, bool v )
|
||||||
{
|
{
|
||||||
char buf[BUF_SIZE];
|
char buf[BUF_SIZE];
|
||||||
@@ -2690,6 +2761,7 @@ void XMLPrinter::PushText( const char* text, bool cdata )
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
void XMLPrinter::PushText( int64_t value )
|
void XMLPrinter::PushText( int64_t value )
|
||||||
{
|
{
|
||||||
char buf[BUF_SIZE];
|
char buf[BUF_SIZE];
|
||||||
@@ -2697,6 +2769,15 @@ void XMLPrinter::PushText( int64_t value )
|
|||||||
PushText( buf, false );
|
PushText( buf, false );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
void XMLPrinter::PushText( uint64_t value )
|
||||||
|
{
|
||||||
|
char buf[BUF_SIZE];
|
||||||
|
XMLUtil::ToStr(value, buf, BUF_SIZE);
|
||||||
|
PushText(buf, false);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
void XMLPrinter::PushText( int value )
|
void XMLPrinter::PushText( int value )
|
||||||
{
|
{
|
||||||
char buf[BUF_SIZE];
|
char buf[BUF_SIZE];
|
||||||
|
|||||||
49
tinyxml2.h
49
tinyxml2.h
@@ -617,6 +617,7 @@ public:
|
|||||||
static void ToStr( float v, char* buffer, int bufferSize );
|
static void ToStr( float v, char* buffer, int bufferSize );
|
||||||
static void ToStr( double v, char* buffer, int bufferSize );
|
static void ToStr( double v, char* buffer, int bufferSize );
|
||||||
static void ToStr(int64_t v, char* buffer, int bufferSize);
|
static void ToStr(int64_t v, char* buffer, int bufferSize);
|
||||||
|
static void ToStr(uint64_t v, char* buffer, int bufferSize);
|
||||||
|
|
||||||
// converts strings to primitive types
|
// converts strings to primitive types
|
||||||
static bool ToInt( const char* str, int* value );
|
static bool ToInt( const char* str, int* value );
|
||||||
@@ -625,7 +626,7 @@ public:
|
|||||||
static bool ToFloat( const char* str, float* value );
|
static bool ToFloat( const char* str, float* value );
|
||||||
static bool ToDouble( const char* str, double* value );
|
static bool ToDouble( const char* str, double* value );
|
||||||
static bool ToInt64(const char* str, int64_t* value);
|
static bool ToInt64(const char* str, int64_t* value);
|
||||||
|
static bool ToUnsigned64(const char* str, uint64_t* value);
|
||||||
// Changes what is serialized for a boolean value.
|
// Changes what is serialized for a boolean value.
|
||||||
// Default to "true" and "false". Shouldn't be changed
|
// Default to "true" and "false". Shouldn't be changed
|
||||||
// unless you have a special testing or compatibility need.
|
// unless you have a special testing or compatibility need.
|
||||||
@@ -1164,6 +1165,12 @@ public:
|
|||||||
return i;
|
return i;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
uint64_t Unsigned64Value() const {
|
||||||
|
uint64_t i = 0;
|
||||||
|
QueryUnsigned64Value(&i);
|
||||||
|
return i;
|
||||||
|
}
|
||||||
|
|
||||||
/// Query as an unsigned integer. See IntValue()
|
/// Query as an unsigned integer. See IntValue()
|
||||||
unsigned UnsignedValue() const {
|
unsigned UnsignedValue() const {
|
||||||
unsigned i=0;
|
unsigned i=0;
|
||||||
@@ -1199,6 +1206,8 @@ public:
|
|||||||
/// See QueryIntValue
|
/// See QueryIntValue
|
||||||
XMLError QueryInt64Value(int64_t* value) const;
|
XMLError QueryInt64Value(int64_t* value) const;
|
||||||
/// See QueryIntValue
|
/// See QueryIntValue
|
||||||
|
XMLError QueryUnsigned64Value(uint64_t* value) const;
|
||||||
|
/// See QueryIntValue
|
||||||
XMLError QueryBoolValue( bool* value ) const;
|
XMLError QueryBoolValue( bool* value ) const;
|
||||||
/// See QueryIntValue
|
/// See QueryIntValue
|
||||||
XMLError QueryDoubleValue( double* value ) const;
|
XMLError QueryDoubleValue( double* value ) const;
|
||||||
@@ -1214,6 +1223,8 @@ public:
|
|||||||
/// Set the attribute to value.
|
/// Set the attribute to value.
|
||||||
void SetAttribute(int64_t value);
|
void SetAttribute(int64_t value);
|
||||||
/// Set the attribute to value.
|
/// Set the attribute to value.
|
||||||
|
void SetAttribute(uint64_t value);
|
||||||
|
/// Set the attribute to value.
|
||||||
void SetAttribute( bool value );
|
void SetAttribute( bool value );
|
||||||
/// Set the attribute to value.
|
/// Set the attribute to value.
|
||||||
void SetAttribute( double value );
|
void SetAttribute( double value );
|
||||||
@@ -1302,6 +1313,8 @@ public:
|
|||||||
/// See IntAttribute()
|
/// See IntAttribute()
|
||||||
int64_t Int64Attribute(const char* name, int64_t defaultValue = 0) const;
|
int64_t Int64Attribute(const char* name, int64_t defaultValue = 0) const;
|
||||||
/// See IntAttribute()
|
/// See IntAttribute()
|
||||||
|
uint64_t Unsigned64Attribute(const char* name, uint64_t defaultValue = 0) const;
|
||||||
|
/// See IntAttribute()
|
||||||
bool BoolAttribute(const char* name, bool defaultValue = false) const;
|
bool BoolAttribute(const char* name, bool defaultValue = false) const;
|
||||||
/// See IntAttribute()
|
/// See IntAttribute()
|
||||||
double DoubleAttribute(const char* name, double defaultValue = 0) const;
|
double DoubleAttribute(const char* name, double defaultValue = 0) const;
|
||||||
@@ -1348,6 +1361,15 @@ public:
|
|||||||
}
|
}
|
||||||
|
|
||||||
/// See QueryIntAttribute()
|
/// See QueryIntAttribute()
|
||||||
|
XMLError QueryUnsigned64Attribute(const char* name, uint64_t* value) const {
|
||||||
|
const XMLAttribute* a = FindAttribute(name);
|
||||||
|
if(!a) {
|
||||||
|
return XML_NO_ATTRIBUTE;
|
||||||
|
}
|
||||||
|
return a->QueryUnsigned64Value(value);
|
||||||
|
}
|
||||||
|
|
||||||
|
/// See QueryIntAttribute()
|
||||||
XMLError QueryBoolAttribute( const char* name, bool* value ) const {
|
XMLError QueryBoolAttribute( const char* name, bool* value ) const {
|
||||||
const XMLAttribute* a = FindAttribute( name );
|
const XMLAttribute* a = FindAttribute( name );
|
||||||
if ( !a ) {
|
if ( !a ) {
|
||||||
@@ -1413,6 +1435,10 @@ public:
|
|||||||
return QueryInt64Attribute(name, value);
|
return QueryInt64Attribute(name, value);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
XMLError QueryAttribute(const char* name, uint64_t* value) const {
|
||||||
|
return QueryUnsigned64Attribute(name, value);
|
||||||
|
}
|
||||||
|
|
||||||
XMLError QueryAttribute( const char* name, bool* value ) const {
|
XMLError QueryAttribute( const char* name, bool* value ) const {
|
||||||
return QueryBoolAttribute( name, value );
|
return QueryBoolAttribute( name, value );
|
||||||
}
|
}
|
||||||
@@ -1447,6 +1473,12 @@ public:
|
|||||||
a->SetAttribute(value);
|
a->SetAttribute(value);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// Sets the named attribute to value.
|
||||||
|
void SetAttribute(const char* name, uint64_t value) {
|
||||||
|
XMLAttribute* a = FindOrCreateAttribute(name);
|
||||||
|
a->SetAttribute(value);
|
||||||
|
}
|
||||||
|
|
||||||
/// Sets the named attribute to value.
|
/// Sets the named attribute to value.
|
||||||
void SetAttribute( const char* name, bool value ) {
|
void SetAttribute( const char* name, bool value ) {
|
||||||
XMLAttribute* a = FindOrCreateAttribute( name );
|
XMLAttribute* a = FindOrCreateAttribute( name );
|
||||||
@@ -1547,6 +1579,8 @@ public:
|
|||||||
/// Convenience method for setting text inside an element. See SetText() for important limitations.
|
/// Convenience method for setting text inside an element. See SetText() for important limitations.
|
||||||
void SetText(int64_t value);
|
void SetText(int64_t value);
|
||||||
/// Convenience method for setting text inside an element. See SetText() for important limitations.
|
/// Convenience method for setting text inside an element. See SetText() for important limitations.
|
||||||
|
void SetText(uint64_t value);
|
||||||
|
/// Convenience method for setting text inside an element. See SetText() for important limitations.
|
||||||
void SetText( bool value );
|
void SetText( bool value );
|
||||||
/// Convenience method for setting text inside an element. See SetText() for important limitations.
|
/// Convenience method for setting text inside an element. See SetText() for important limitations.
|
||||||
void SetText( double value );
|
void SetText( double value );
|
||||||
@@ -1585,6 +1619,8 @@ public:
|
|||||||
/// See QueryIntText()
|
/// See QueryIntText()
|
||||||
XMLError QueryInt64Text(int64_t* uval) const;
|
XMLError QueryInt64Text(int64_t* uval) const;
|
||||||
/// See QueryIntText()
|
/// See QueryIntText()
|
||||||
|
XMLError QueryUnsigned64Text(uint64_t* uval) const;
|
||||||
|
/// See QueryIntText()
|
||||||
XMLError QueryBoolText( bool* bval ) const;
|
XMLError QueryBoolText( bool* bval ) const;
|
||||||
/// See QueryIntText()
|
/// See QueryIntText()
|
||||||
XMLError QueryDoubleText( double* dval ) const;
|
XMLError QueryDoubleText( double* dval ) const;
|
||||||
@@ -1598,6 +1634,8 @@ public:
|
|||||||
/// See QueryIntText()
|
/// See QueryIntText()
|
||||||
int64_t Int64Text(int64_t defaultValue = 0) const;
|
int64_t Int64Text(int64_t defaultValue = 0) const;
|
||||||
/// See QueryIntText()
|
/// See QueryIntText()
|
||||||
|
uint64_t Unsigned64Text(uint64_t defaultValue = 0) const;
|
||||||
|
/// See QueryIntText()
|
||||||
bool BoolText(bool defaultValue = false) const;
|
bool BoolText(bool defaultValue = false) const;
|
||||||
/// See QueryIntText()
|
/// See QueryIntText()
|
||||||
double DoubleText(double defaultValue = 0) const;
|
double DoubleText(double defaultValue = 0) const;
|
||||||
@@ -2194,7 +2232,8 @@ public:
|
|||||||
void PushAttribute( const char* name, const char* value );
|
void PushAttribute( const char* name, const char* value );
|
||||||
void PushAttribute( const char* name, int value );
|
void PushAttribute( const char* name, int value );
|
||||||
void PushAttribute( const char* name, unsigned value );
|
void PushAttribute( const char* name, unsigned value );
|
||||||
void PushAttribute(const char* name, int64_t value);
|
void PushAttribute( const char* name, int64_t value );
|
||||||
|
void PushAttribute( const char* name, uint64_t value );
|
||||||
void PushAttribute( const char* name, bool value );
|
void PushAttribute( const char* name, bool value );
|
||||||
void PushAttribute( const char* name, double value );
|
void PushAttribute( const char* name, double value );
|
||||||
/// If streaming, close the Element.
|
/// If streaming, close the Element.
|
||||||
@@ -2206,8 +2245,10 @@ public:
|
|||||||
void PushText( int value );
|
void PushText( int value );
|
||||||
/// Add a text node from an unsigned.
|
/// Add a text node from an unsigned.
|
||||||
void PushText( unsigned value );
|
void PushText( unsigned value );
|
||||||
/// Add a text node from an unsigned.
|
/// Add a text node from a signed 64bit integer.
|
||||||
void PushText(int64_t value);
|
void PushText( int64_t value );
|
||||||
|
/// Add a text node from an unsigned 64bit integer.
|
||||||
|
void PushText( uint64_t value );
|
||||||
/// Add a text node from a bool.
|
/// Add a text node from a bool.
|
||||||
void PushText( bool value );
|
void PushText( bool value );
|
||||||
/// Add a text node from a float.
|
/// Add a text node from a float.
|
||||||
|
|||||||
27
xmltest.cpp
27
xmltest.cpp
@@ -804,6 +804,7 @@ int main( int argc, const char ** argv )
|
|||||||
// ---------- Attributes ---------
|
// ---------- Attributes ---------
|
||||||
{
|
{
|
||||||
static const int64_t BIG = -123456789012345678;
|
static const int64_t BIG = -123456789012345678;
|
||||||
|
static const uint64_t BIG_POS = 123456789012345678;
|
||||||
XMLDocument doc;
|
XMLDocument doc;
|
||||||
XMLElement* element = doc.NewElement("element");
|
XMLElement* element = doc.NewElement("element");
|
||||||
doc.InsertFirstChild(element);
|
doc.InsertFirstChild(element);
|
||||||
@@ -864,6 +865,22 @@ int main( int argc, const char ** argv )
|
|||||||
}
|
}
|
||||||
XMLTest("Attribute: int64_t", BIG, element->Int64Attribute("attrib"), true);
|
XMLTest("Attribute: int64_t", BIG, element->Int64Attribute("attrib"), true);
|
||||||
}
|
}
|
||||||
|
{
|
||||||
|
element->SetAttribute("attrib", BIG_POS);
|
||||||
|
{
|
||||||
|
uint64_t v = 0;
|
||||||
|
XMLError queryResult = element->QueryUnsigned64Attribute("attrib", &v);
|
||||||
|
XMLTest("Attribute: uint64_t", XML_SUCCESS, queryResult, true);
|
||||||
|
XMLTest("Attribute: uint64_t", BIG_POS, v, true);
|
||||||
|
}
|
||||||
|
{
|
||||||
|
uint64_t v = 0;
|
||||||
|
int queryResult = element->QueryAttribute("attrib", &v);
|
||||||
|
XMLTest("Attribute: uint64_t", (int)XML_SUCCESS, queryResult, true);
|
||||||
|
XMLTest("Attribute: uint64_t", BIG_POS, v, true);
|
||||||
|
}
|
||||||
|
XMLTest("Attribute: uint64_t", BIG_POS, element->Unsigned64Attribute("attrib"), true);
|
||||||
|
}
|
||||||
{
|
{
|
||||||
element->SetAttribute("attrib", true);
|
element->SetAttribute("attrib", true);
|
||||||
{
|
{
|
||||||
@@ -931,6 +948,13 @@ int main( int argc, const char ** argv )
|
|||||||
XMLTest("Element: int64_t", XML_SUCCESS, queryResult, true);
|
XMLTest("Element: int64_t", XML_SUCCESS, queryResult, true);
|
||||||
XMLTest("Element: int64_t", BIG, v, true);
|
XMLTest("Element: int64_t", BIG, v, true);
|
||||||
}
|
}
|
||||||
|
{
|
||||||
|
element->SetText(BIG_POS);
|
||||||
|
uint64_t v = 0;
|
||||||
|
XMLError queryResult = element->QueryUnsigned64Text(&v);
|
||||||
|
XMLTest("Element: uint64_t", XML_SUCCESS, queryResult, true);
|
||||||
|
XMLTest("Element: uint64_t", BIG_POS, v, true);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// ---------- XMLPrinter stream mode ------
|
// ---------- XMLPrinter stream mode ------
|
||||||
@@ -944,6 +968,7 @@ int main( int argc, const char ** argv )
|
|||||||
printer.PushAttribute("attrib-int", int(1));
|
printer.PushAttribute("attrib-int", int(1));
|
||||||
printer.PushAttribute("attrib-unsigned", unsigned(2));
|
printer.PushAttribute("attrib-unsigned", unsigned(2));
|
||||||
printer.PushAttribute("attrib-int64", int64_t(3));
|
printer.PushAttribute("attrib-int64", int64_t(3));
|
||||||
|
printer.PushAttribute("attrib-uint64", uint64_t(37));
|
||||||
printer.PushAttribute("attrib-bool", true);
|
printer.PushAttribute("attrib-bool", true);
|
||||||
printer.PushAttribute("attrib-double", 4.0);
|
printer.PushAttribute("attrib-double", 4.0);
|
||||||
printer.CloseElement();
|
printer.CloseElement();
|
||||||
@@ -964,6 +989,8 @@ int main( int argc, const char ** argv )
|
|||||||
XMLTest("attrib-unsigned", unsigned(2), attrib->UnsignedValue(), true);
|
XMLTest("attrib-unsigned", unsigned(2), attrib->UnsignedValue(), true);
|
||||||
attrib = cdoc.FirstChildElement("foo")->FindAttribute("attrib-int64");
|
attrib = cdoc.FirstChildElement("foo")->FindAttribute("attrib-int64");
|
||||||
XMLTest("attrib-int64", int64_t(3), attrib->Int64Value(), true);
|
XMLTest("attrib-int64", int64_t(3), attrib->Int64Value(), true);
|
||||||
|
attrib = cdoc.FirstChildElement("foo")->FindAttribute("attrib-uint64");
|
||||||
|
XMLTest("attrib-uint64", uint64_t(37), attrib->Unsigned64Value(), true);
|
||||||
attrib = cdoc.FirstChildElement("foo")->FindAttribute("attrib-bool");
|
attrib = cdoc.FirstChildElement("foo")->FindAttribute("attrib-bool");
|
||||||
XMLTest("attrib-bool", true, attrib->BoolValue(), true);
|
XMLTest("attrib-bool", true, attrib->BoolValue(), true);
|
||||||
attrib = cdoc.FirstChildElement("foo")->FindAttribute("attrib-double");
|
attrib = cdoc.FirstChildElement("foo")->FindAttribute("attrib-double");
|
||||||
|
|||||||
Reference in New Issue
Block a user