osgEarth 2.1.1
|
#include <tinyxml.h>
Public Member Functions | |
TiXmlAttribute () | |
Construct an empty attribute. | |
TiXmlAttribute (const char *_name, const char *_value) | |
Construct an attribute with a name and value. | |
const char * | Name () const |
Return the name of this attribute. | |
const char * | Value () const |
Return the value of this attribute. | |
int | IntValue () const |
Return the value of this attribute, converted to an integer. | |
double | DoubleValue () const |
Return the value of this attribute, converted to a double. | |
const TIXML_STRING & | NameTStr () const |
int | QueryIntValue (int *_value) const |
int | QueryDoubleValue (double *_value) const |
QueryDoubleValue examines the value string. See QueryIntValue(). | |
void | SetName (const char *_name) |
Set the name of this attribute. | |
void | SetValue (const char *_value) |
Set the value. | |
void | SetIntValue (int _value) |
Set the value from an integer. | |
void | SetDoubleValue (double _value) |
Set the value from a double. | |
const TiXmlAttribute * | Next () const |
Get the next sibling attribute in the DOM. Returns null at end. | |
TiXmlAttribute * | Next () |
const TiXmlAttribute * | Previous () const |
Get the previous sibling attribute in the DOM. Returns null at beginning. | |
TiXmlAttribute * | Previous () |
bool | operator== (const TiXmlAttribute &rhs) const |
bool | operator< (const TiXmlAttribute &rhs) const |
bool | operator> (const TiXmlAttribute &rhs) const |
virtual const char * | Parse (const char *p, TiXmlParsingData *data, TiXmlEncoding encoding) |
virtual void | Print (FILE *cfile, int depth) const |
void | Print (FILE *cfile, int depth, TIXML_STRING *str) const |
void | SetDocument (TiXmlDocument *doc) |
Private Member Functions | |
TiXmlAttribute (const TiXmlAttribute &) | |
void | operator= (const TiXmlAttribute &base) |
Private Attributes | |
TiXmlDocument * | document |
TIXML_STRING | name |
TIXML_STRING | value |
TiXmlAttribute * | prev |
TiXmlAttribute * | next |
Friends | |
class | TiXmlAttributeSet |
An attribute is a name-value pair. Elements have an arbitrary number of attributes, each with a unique name.
TiXmlAttribute::TiXmlAttribute | ( | ) | [inline] |
TiXmlAttribute::TiXmlAttribute | ( | const char * | _name, |
const char * | _value | ||
) | [inline] |
TiXmlAttribute::TiXmlAttribute | ( | const TiXmlAttribute & | ) | [private] |
double TiXmlAttribute::DoubleValue | ( | ) | const |
Return the value of this attribute, converted to a double.
Definition at line 1232 of file tinyxml.cpp.
{ return atof (value.c_str ()); }
int TiXmlAttribute::IntValue | ( | ) | const |
Return the value of this attribute, converted to an integer.
Definition at line 1227 of file tinyxml.cpp.
{ return atoi (value.c_str ()); }
const char* TiXmlAttribute::Name | ( | ) | const [inline] |
const TIXML_STRING& TiXmlAttribute::NameTStr | ( | ) | const [inline] |
const TiXmlAttribute * TiXmlAttribute::Next | ( | ) | const |
Get the next sibling attribute in the DOM. Returns null at end.
Definition at line 1125 of file tinyxml.cpp.
{ // We are using knowledge of the sentinel. The sentinel // have a value or name. if ( next->value.empty() && next->name.empty() ) return 0; return next; }
TiXmlAttribute* TiXmlAttribute::Next | ( | ) | [inline] |
Definition at line 850 of file tinyxml.h.
{ return const_cast< TiXmlAttribute* >( (const_cast< const TiXmlAttribute* >(this))->Next() ); }
bool TiXmlAttribute::operator< | ( | const TiXmlAttribute & | rhs | ) | const [inline] |
void TiXmlAttribute::operator= | ( | const TiXmlAttribute & | base | ) | [private] |
bool TiXmlAttribute::operator== | ( | const TiXmlAttribute & | rhs | ) | const [inline] |
bool TiXmlAttribute::operator> | ( | const TiXmlAttribute & | rhs | ) | const [inline] |
const char * TiXmlAttribute::Parse | ( | const char * | p, |
TiXmlParsingData * | data, | ||
TiXmlEncoding | encoding | ||
) | [virtual] |
Implements TiXmlBase.
Definition at line 1390 of file tinyxmlparser.cpp.
{ p = SkipWhiteSpace( p, encoding ); if ( !p || !*p ) return 0; if ( data ) { data->Stamp( p, encoding ); location = data->Cursor(); } // Read the name, the '=' and the value. const char* pErr = p; p = ReadName( p, &name, encoding ); if ( !p || !*p ) { if ( document ) document->SetError( TIXML_ERROR_READING_ATTRIBUTES, pErr, data, encoding ); return 0; } p = SkipWhiteSpace( p, encoding ); if ( !p || !*p || *p != '=' ) { if ( document ) document->SetError( TIXML_ERROR_READING_ATTRIBUTES, p, data, encoding ); return 0; } ++p; // skip '=' p = SkipWhiteSpace( p, encoding ); if ( !p || !*p ) { if ( document ) document->SetError( TIXML_ERROR_READING_ATTRIBUTES, p, data, encoding ); return 0; } const char* end; const char SINGLE_QUOTE = '\''; const char DOUBLE_QUOTE = '\"'; if ( *p == SINGLE_QUOTE ) { ++p; end = "\'"; // single quote in string p = ReadText( p, &value, false, end, false, encoding ); } else if ( *p == DOUBLE_QUOTE ) { ++p; end = "\""; // double quote in string p = ReadText( p, &value, false, end, false, encoding ); } else { // All attribute values should be in single or double quotes. // But this is such a common error that the parser will try // its best, even without them. value = ""; while ( p && *p // existence && !IsWhiteSpace( *p ) // whitespace && *p != '/' && *p != '>' ) // tag end { if ( *p == SINGLE_QUOTE || *p == DOUBLE_QUOTE ) { // [ 1451649 ] Attribute values with trailing quotes not handled correctly // We did not have an opening quote but seem to have a // closing one. Give up and throw an error. if ( document ) document->SetError( TIXML_ERROR_READING_ATTRIBUTES, p, data, encoding ); return 0; } value += *p; ++p; } } return p; }
TiXmlAttribute* TiXmlAttribute::Previous | ( | ) | [inline] |
Definition at line 856 of file tinyxml.h.
{ return const_cast< TiXmlAttribute* >( (const_cast< const TiXmlAttribute* >(this))->Previous() ); }
const TiXmlAttribute * TiXmlAttribute::Previous | ( | ) | const |
void TiXmlAttribute::Print | ( | FILE * | cfile, |
int | depth, | ||
TIXML_STRING * | str | ||
) | const |
Definition at line 1165 of file tinyxml.cpp.
{ TIXML_STRING n, v; EncodeString( name, &n ); EncodeString( value, &v ); if (value.find ('\"') == TIXML_STRING::npos) { if ( cfile ) { fprintf (cfile, "%s=\"%s\"", n.c_str(), v.c_str() ); } if ( str ) { (*str) += n; (*str) += "=\""; (*str) += v; (*str) += "\""; } } else { if ( cfile ) { fprintf (cfile, "%s='%s'", n.c_str(), v.c_str() ); } if ( str ) { (*str) += n; (*str) += "='"; (*str) += v; (*str) += "'"; } } }
virtual void TiXmlAttribute::Print | ( | FILE * | cfile, |
int | depth | ||
) | const [inline, virtual] |
All TinyXml classes can print themselves to a filestream or the string class (TiXmlString in non-STL mode, std::string in STL mode.) Either or both cfile and str can be null.
This is a formatted print, and will insert tabs and newlines.
(For an unformatted stream, use the << operator.)
Implements TiXmlBase.
Definition at line 870 of file tinyxml.h.
{ Print( cfile, depth, 0 ); }
int TiXmlAttribute::QueryDoubleValue | ( | double * | _value | ) | const |
QueryDoubleValue examines the value string. See QueryIntValue().
Definition at line 1198 of file tinyxml.cpp.
{ if ( TIXML_SSCANF( value.c_str(), "%lf", dval ) == 1 ) return TIXML_SUCCESS; return TIXML_WRONG_TYPE; }
int TiXmlAttribute::QueryIntValue | ( | int * | _value | ) | const |
QueryIntValue examines the value string. It is an alternative to the IntValue() method with richer error checking. If the value is an integer, it is stored in 'value' and the call returns TIXML_SUCCESS. If it is not an integer, it returns TIXML_WRONG_TYPE.
A specialized but useful call. Note that for success it returns 0, which is the opposite of almost all other TinyXml calls.
Definition at line 1191 of file tinyxml.cpp.
{ if ( TIXML_SSCANF( value.c_str(), "%d", ival ) == 1 ) return TIXML_SUCCESS; return TIXML_WRONG_TYPE; }
void TiXmlAttribute::SetDocument | ( | TiXmlDocument * | doc | ) | [inline] |
void TiXmlAttribute::SetDoubleValue | ( | double | _value | ) |
Set the value from a double.
Definition at line 1216 of file tinyxml.cpp.
{ char buf [256]; #if defined(TIXML_SNPRINTF) TIXML_SNPRINTF( buf, sizeof(buf), "%g", _value); #else sprintf (buf, "%g", _value); #endif SetValue (buf); }
void TiXmlAttribute::SetIntValue | ( | int | _value | ) |
Set the value from an integer.
Definition at line 1205 of file tinyxml.cpp.
{ char buf [64]; #if defined(TIXML_SNPRINTF) TIXML_SNPRINTF(buf, sizeof(buf), "%d", _value); #else sprintf (buf, "%d", _value); #endif SetValue (buf); }
void TiXmlAttribute::SetName | ( | const char * | _name | ) | [inline] |
void TiXmlAttribute::SetValue | ( | const char * | _value | ) | [inline] |
const char* TiXmlAttribute::Value | ( | ) | const [inline] |
friend class TiXmlAttributeSet [friend] |
TiXmlDocument* TiXmlAttribute::document [private] |
TIXML_STRING TiXmlAttribute::name [private] |
TiXmlAttribute* TiXmlAttribute::next [private] |
TiXmlAttribute* TiXmlAttribute::prev [private] |
TIXML_STRING TiXmlAttribute::value [private] |