aGrUM  0.20.3
a C++ library for (probabilistic) graphical models
TiXmlDeclaration Class Reference

In correct XML the declaration is the first entry in the file. More...

#include <tinyxml.h>

+ Inheritance diagram for TiXmlDeclaration:
+ Collaboration diagram for TiXmlDeclaration:

Public Attributes

std::vector< ticpp::Base *> m_spawnedWrappers
 Remember all wrappers that we've created with 'new' - ( e.g. More...
 

Public Member Functions

 TiXmlDeclaration ()
 Construct an empty declaration. More...
 
 TiXmlDeclaration (const std::string &_version, const std::string &_encoding, const std::string &_standalone)
 Constructor. More...
 
 TiXmlDeclaration (const char *_version, const char *_encoding, const char *_standalone)
 Construct. More...
 
 TiXmlDeclaration (const TiXmlDeclaration &copy)
 
void operator= (const TiXmlDeclaration &copy)
 
virtual ~TiXmlDeclaration ()
 
const char * Version () const
 Version. Will return an empty string if none was found. More...
 
const char * Encoding () const
 Encoding. Will return an empty string if none was found. More...
 
const char * Standalone () const
 Is this a standalone document? More...
 
virtual TiXmlNodeClone () const
 Creates a copy of this Declaration and returns it. More...
 
virtual void Print (FILE *cfile, int depth, TIXML_STRING *str) const
 
virtual void Print (FILE *cfile, int depth) const
 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. More...
 
virtual const char * Parse (const char *p, TiXmlParsingData *data, TiXmlEncoding encoding)
 
virtual const TiXmlDeclarationToDeclaration () const
 Cast to a more defined type. Will return null not of the requested type. More...
 
virtual TiXmlDeclarationToDeclaration ()
 Cast to a more defined type. Will return null not of the requested type. More...
 
virtual bool Accept (TiXmlVisitor *visitor) const
 Walk the XML tree visiting this node and all of its children. More...
 
const char * Value () const
 The meaning of 'value' changes for the specific type of TiXmlNode. More...
 
const std::string & ValueStr () const
 Return Value() as a std::string. More...
 
const TIXML_STRINGValueTStr () const
 
void SetValue (const char *_value)
 Changes the value of the node. More...
 
void SetValue (const std::string &_value)
 STL std::string form. More...
 
void Clear ()
 Delete all the children of this node. Does not affect 'this'. More...
 
TiXmlNodeParent ()
 One step up the DOM. More...
 
const TiXmlNodeParent () const
 
const TiXmlNodeFirstChild () const
 The first child of this node. Will be null if there are no children. More...
 
TiXmlNodeFirstChild ()
 
const TiXmlNodeFirstChild (const char *value) const
 The first child of this node with the matching 'value'. Will be null if none found. The first child of this node with the matching 'value'. Will be null if none found. More...
 
TiXmlNodeFirstChild (const char *_value)
 
const TiXmlNodeFirstChild (const std::string &_value) const
 STL std::string form. More...
 
TiXmlNodeFirstChild (const std::string &_value)
 STL std::string form. More...
 
const TiXmlNodeLastChild () const
 
TiXmlNodeLastChild ()
 The last child of this node. Will be null if there are no children. More...
 
const TiXmlNodeLastChild (const char *value) const
 
TiXmlNodeLastChild (const char *_value)
 The last child of this node matching 'value'. Will be null if there are no children. More...
 
const TiXmlNodeLastChild (const std::string &_value) const
 STL std::string form. More...
 
TiXmlNodeLastChild (const std::string &_value)
 STL std::string form. More...
 
const TiXmlNodeIterateChildren (const TiXmlNode *previous) const
 An alternate way to walk the children of a node. More...
 
TiXmlNodeIterateChildren (const TiXmlNode *previous)
 
const TiXmlNodeIterateChildren (const char *value, const TiXmlNode *previous) const
 This flavor of IterateChildren searches for children with a particular 'value'. More...
 
TiXmlNodeIterateChildren (const char *_value, const TiXmlNode *previous)
 
const TiXmlNodeIterateChildren (const std::string &_value, const TiXmlNode *previous) const
 STL std::string form. More...
 
TiXmlNodeIterateChildren (const std::string &_value, const TiXmlNode *previous)
 STL std::string form. More...
 
TiXmlNodeInsertEndChild (const TiXmlNode &addThis)
 Add a new node related to this. More...
 
TiXmlNodeLinkEndChild (TiXmlNode *addThis)
 Add a new node related to this. More...
 
TiXmlNodeInsertBeforeChild (TiXmlNode *beforeThis, const TiXmlNode &addThis)
 Add a new node related to this. More...
 
TiXmlNodeInsertAfterChild (TiXmlNode *afterThis, const TiXmlNode &addThis)
 Add a new node related to this. More...
 
TiXmlNodeReplaceChild (TiXmlNode *replaceThis, const TiXmlNode &withThis)
 Replace a child of this node. More...
 
bool RemoveChild (TiXmlNode *removeThis)
 Delete a child of this node. More...
 
const TiXmlNodePreviousSibling () const
 Navigate to a sibling node. More...
 
TiXmlNodePreviousSibling ()
 
const TiXmlNodePreviousSibling (const char *) const
 Navigate to a sibling node. More...
 
TiXmlNodePreviousSibling (const char *_prev)
 
const TiXmlNodePreviousSibling (const std::string &_value) const
 STL std::string form. More...
 
TiXmlNodePreviousSibling (const std::string &_value)
 STL std::string form. More...
 
const TiXmlNodeNextSibling (const std::string &_value) const
 STL std::string form. More...
 
TiXmlNodeNextSibling (const std::string &_value)
 STL std::string form. More...
 
const TiXmlNodeNextSibling () const
 Navigate to a sibling node. More...
 
TiXmlNodeNextSibling ()
 
const TiXmlNodeNextSibling (const char *) const
 Navigate to a sibling node with the given 'value'. More...
 
TiXmlNodeNextSibling (const char *_next)
 
const TiXmlElementNextSiblingElement () const
 Convenience function to get through elements. More...
 
TiXmlElementNextSiblingElement ()
 
const TiXmlElementNextSiblingElement (const char *) const
 Convenience function to get through elements. More...
 
TiXmlElementNextSiblingElement (const char *_next)
 
const TiXmlElementNextSiblingElement (const std::string &_value) const
 STL std::string form. More...
 
TiXmlElementNextSiblingElement (const std::string &_value)
 STL std::string form. More...
 
const TiXmlElementFirstChildElement () const
 Convenience function to get through elements. More...
 
TiXmlElementFirstChildElement ()
 
const TiXmlElementFirstChildElement (const char *_value) const
 Convenience function to get through elements. More...
 
TiXmlElementFirstChildElement (const char *_value)
 
const TiXmlElementFirstChildElement (const std::string &_value) const
 STL std::string form. More...
 
TiXmlElementFirstChildElement (const std::string &_value)
 STL std::string form. More...
 
int Type () const
 Query the type (as an enumerated value, above) of this node. More...
 
const TiXmlDocumentGetDocument () const
 Return a pointer to the Document this node lives in. More...
 
TiXmlDocumentGetDocument ()
 
bool NoChildren () const
 Returns true if this node has no children. More...
 
virtual const TiXmlDocumentToDocument () const
 Cast to a more defined type. Will return null if not of the requested type. More...
 
virtual TiXmlDocumentToDocument ()
 Cast to a more defined type. Will return null if not of the requested type. More...
 
virtual const TiXmlElementToElement () const
 Cast to a more defined type. Will return null if not of the requested type. More...
 
virtual TiXmlElementToElement ()
 Cast to a more defined type. Will return null if not of the requested type. More...
 
virtual const TiXmlCommentToComment () const
 Cast to a more defined type. Will return null if not of the requested type. More...
 
virtual TiXmlCommentToComment ()
 Cast to a more defined type. Will return null if not of the requested type. More...
 
virtual const TiXmlUnknownToUnknown () const
 Cast to a more defined type. Will return null if not of the requested type. More...
 
virtual TiXmlUnknownToUnknown ()
 Cast to a more defined type. Will return null if not of the requested type. More...
 
virtual const TiXmlTextToText () const
 Cast to a more defined type. Will return null if not of the requested type. More...
 
virtual TiXmlTextToText ()
 Cast to a more defined type. Will return null if not of the requested type. More...
 
virtual const TiXmlStylesheetReferenceToStylesheetReference () const
 Cast to a more defined type. Will return null if not of the requested type. More...
 
virtual TiXmlStylesheetReferenceToStylesheetReference ()
 Cast to a more defined type. Will return null if not of the requested type. More...
 
int Row () const
 Return the position, in the original source file, of this node or attribute. More...
 
int Column () const
 See Row() More...
 
void SetUserData (void *user)
 Set a pointer to arbitrary user data. More...
 
void * GetUserData ()
 Get a pointer to arbitrary user data. More...
 
const void * GetUserData () const
 Get a pointer to arbitrary user data. More...
 
void DeleteSpawnedWrappers ()
 Delete all container objects we've spawned with 'new'. More...
 

Static Public Attributes

static const int utf8ByteTable [256]
 

Static Public Member Functions

static void SetCondenseWhiteSpace (bool condense)
 The world does not agree on whether white space should be kept or not. More...
 
static bool IsWhiteSpaceCondensed ()
 Return the current white space setting. More...
 
static void EncodeString (const TIXML_STRING &str, TIXML_STRING *out)
 Expands entities in a string. More...
 

Public Types

enum  NodeType {
  DOCUMENT, ELEMENT, COMMENT, UNKNOWN,
  TEXT, DECLARATION, STYLESHEETREFERENCE, TYPECOUNT
}
 The types of XML nodes supported by TinyXml. More...
 
enum  {
  TIXML_NO_ERROR = 0, TIXML_ERROR, TIXML_ERROR_OPENING_FILE, TIXML_ERROR_OUT_OF_MEMORY,
  TIXML_ERROR_PARSING_ELEMENT, TIXML_ERROR_FAILED_TO_READ_ELEMENT_NAME, TIXML_ERROR_READING_ELEMENT_VALUE, TIXML_ERROR_READING_ATTRIBUTES,
  TIXML_ERROR_PARSING_EMPTY, TIXML_ERROR_READING_END_TAG, TIXML_ERROR_PARSING_UNKNOWN, TIXML_ERROR_PARSING_COMMENT,
  TIXML_ERROR_PARSING_DECLARATION, TIXML_ERROR_DOCUMENT_EMPTY, TIXML_ERROR_EMBEDDED_nullptr, TIXML_ERROR_PARSING_CDATA,
  TIXML_ERROR_DOCUMENT_TOP_ONLY, TIXML_ERROR_STRING_COUNT
}
 

Protected Attributes

TiXmlNodeparent
 
NodeType type
 
TiXmlNodefirstChild
 
TiXmlNodelastChild
 
TIXML_STRING value
 
TiXmlNodeprev
 
TiXmlNodenext
 
TiXmlCursor location
 
void * userData
 Field containing a generic user pointer. More...
 

Protected Member Functions

void CopyTo (TiXmlDeclaration *target) const
 
virtual void StreamIn (std::istream *in, TIXML_STRING *tag)
 
void CopyTo (TiXmlNode *target) const
 
TiXmlNodeIdentify (const char *start, TiXmlEncoding encoding)
 

Static Protected Attributes

static const char * errorString [TIXML_ERROR_STRING_COUNT]
 

Static Protected Member Functions

static const char * SkipWhiteSpace (const char *, TiXmlEncoding encoding)
 
static bool IsWhiteSpace (char c)
 
static bool IsWhiteSpace (int c)
 
static bool StreamWhiteSpace (std::istream *in, TIXML_STRING *tag)
 
static bool StreamTo (std::istream *in, int character, TIXML_STRING *tag)
 
static const char * ReadName (const char *p, TIXML_STRING *name, TiXmlEncoding encoding)
 
static const char * ReadText (const char *in, TIXML_STRING *text, bool ignoreWhiteSpace, const char *endTag, bool ignoreCase, TiXmlEncoding encoding)
 
static const char * GetEntity (const char *in, char *value, int *length, TiXmlEncoding encoding)
 
static const char * GetChar (const char *p, char *_value, int *length, TiXmlEncoding encoding)
 
static bool StringEqual (const char *p, const char *endTag, bool ignoreCase, TiXmlEncoding encoding)
 
static int IsAlpha (unsigned char anyByte, TiXmlEncoding encoding)
 
static int IsAlphaNum (unsigned char anyByte, TiXmlEncoding encoding)
 
static int ToLower (int v, TiXmlEncoding encoding)
 
static void ConvertUTF32ToUTF8 (unsigned long input, char *output, int *length)
 

Detailed Description

In correct XML the declaration is the first entry in the file.

  <?xml version="1.0" standalone="yes"?>

TinyXml will happily read or write files without a declaration, however. There are 3 possible attributes to the declaration: version, encoding, and standalone.

Note: In this version of the code, the attributes are handled as special cases, not generic attributes, simply because there can only be at most 3 and they are always the same.

Definition at line 1469 of file tinyxml.h.

Member Enumeration Documentation

◆ anonymous enum

anonymous enum
inherited
Enumerator
TIXML_NO_ERROR 
TIXML_ERROR 
TIXML_ERROR_OPENING_FILE 
TIXML_ERROR_OUT_OF_MEMORY 
TIXML_ERROR_PARSING_ELEMENT 
TIXML_ERROR_FAILED_TO_READ_ELEMENT_NAME 
TIXML_ERROR_READING_ELEMENT_VALUE 
TIXML_ERROR_READING_ATTRIBUTES 
TIXML_ERROR_PARSING_EMPTY 
TIXML_ERROR_READING_END_TAG 
TIXML_ERROR_PARSING_UNKNOWN 
TIXML_ERROR_PARSING_COMMENT 
TIXML_ERROR_PARSING_DECLARATION 
TIXML_ERROR_DOCUMENT_EMPTY 
TIXML_ERROR_EMBEDDED_nullptr 
TIXML_ERROR_PARSING_CDATA 
TIXML_ERROR_DOCUMENT_TOP_ONLY 
TIXML_ERROR_STRING_COUNT 

Definition at line 304 of file tinyxml.h.

304  {
305  TIXML_NO_ERROR = 0,
306  TIXML_ERROR,
322 
324  };

◆ NodeType

enum TiXmlNode::NodeType
inherited

The types of XML nodes supported by TinyXml.

(All the unsupported types are picked up by UNKNOWN.)

Enumerator
DOCUMENT 
ELEMENT 
COMMENT 
UNKNOWN 
TEXT 
DECLARATION 
STYLESHEETREFERENCE 
TYPECOUNT 

Definition at line 492 of file tinyxml.h.

Constructor & Destructor Documentation

◆ TiXmlDeclaration() [1/4]

TiXmlDeclaration::TiXmlDeclaration ( )
inline

Construct an empty declaration.

Definition at line 1472 of file tinyxml.h.

References TiXmlNode::DECLARATION, and TiXmlNode::TiXmlNode().

Referenced by Clone().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ TiXmlDeclaration() [2/4]

TiXmlDeclaration::TiXmlDeclaration ( const std::string &  _version,
const std::string &  _encoding,
const std::string &  _standalone 
)

Constructor.

Definition at line 1233 of file tinyxml.cpp.

References TiXmlNode::DECLARATION, and TiXmlNode::TiXmlNode().

1237  version = _version;
1238  encoding = _encoding;
1239  standalone = _standalone;
1240 }
TIXML_STRING standalone
Definition: tinyxml.h:1531
TIXML_STRING version
Definition: tinyxml.h:1529
TiXmlNode(NodeType _type)
Definition: tinyxml.cpp:113
TIXML_STRING encoding
Definition: tinyxml.h:1530
+ Here is the call graph for this function:

◆ TiXmlDeclaration() [3/4]

TiXmlDeclaration::TiXmlDeclaration ( const char *  _version,
const char *  _encoding,
const char *  _standalone 
)

Construct.

Definition at line 1223 of file tinyxml.cpp.

References TiXmlNode::DECLARATION, and TiXmlNode::TiXmlNode().

1227  version = _version;
1228  encoding = _encoding;
1229  standalone = _standalone;
1230 }
TIXML_STRING standalone
Definition: tinyxml.h:1531
TIXML_STRING version
Definition: tinyxml.h:1529
TiXmlNode(NodeType _type)
Definition: tinyxml.cpp:113
TIXML_STRING encoding
Definition: tinyxml.h:1530
+ Here is the call graph for this function:

◆ TiXmlDeclaration() [4/4]

TiXmlDeclaration::TiXmlDeclaration ( const TiXmlDeclaration copy)

Definition at line 1243 of file tinyxml.cpp.

References CopyTo(), TiXmlNode::DECLARATION, and TiXmlNode::TiXmlNode().

1245  copy.CopyTo(this);
1246 }
void CopyTo(TiXmlDeclaration *target) const
Definition: tinyxml.cpp:1293
TiXmlNode(NodeType _type)
Definition: tinyxml.cpp:113
+ Here is the call graph for this function:

◆ ~TiXmlDeclaration()

virtual TiXmlDeclaration::~TiXmlDeclaration ( )
inlinevirtual

Definition at line 1490 of file tinyxml.h.

1490 {}

Member Function Documentation

◆ Accept()

bool TiXmlDeclaration::Accept ( TiXmlVisitor visitor) const
virtual

Walk the XML tree visiting this node and all of its children.

Implements TiXmlNode.

Definition at line 1301 of file tinyxml.cpp.

References TiXmlVisitor::Visit().

1301  {
1302  return visitor->Visit(*this);
1303 }
virtual bool Visit(const TiXmlDeclaration &)
Visit a declaration.
Definition: tinyxml.h:162
+ Here is the call graph for this function:

◆ Clear()

void TiXmlNode::Clear ( )
inherited

Delete all the children of this node. Does not affect 'this'.

Definition at line 139 of file tinyxml.cpp.

References TiXmlNode::firstChild, TiXmlNode::lastChild, and TiXmlNode::next.

Referenced by ticpp::Node::Clear().

139  {
140  TiXmlNode* node = firstChild;
141  TiXmlNode* temp = 0;
142 
143  while (node) {
144  temp = node;
145  node = node->next;
146  delete temp;
147  }
148 
149  firstChild = 0;
150  lastChild = 0;
151 }
TiXmlNode * firstChild
Definition: tinyxml.h:895
The parent class for everything in the Document Object Model.
Definition: tinyxml.h:454
TiXmlNode * next
Definition: tinyxml.h:901
TiXmlNode * lastChild
Definition: tinyxml.h:896
+ Here is the caller graph for this function:

◆ Clone()

TiXmlNode * TiXmlDeclaration::Clone ( ) const
virtual

Creates a copy of this Declaration and returns it.

Implements TiXmlNode.

Definition at line 1305 of file tinyxml.cpp.

References CopyTo(), and TiXmlDeclaration().

1305  {
1306  TiXmlDeclaration* clone = new TiXmlDeclaration();
1307 
1308  if (!clone) return 0;
1309 
1310  CopyTo(clone);
1311  return clone;
1312 }
void CopyTo(TiXmlDeclaration *target) const
Definition: tinyxml.cpp:1293
In correct XML the declaration is the first entry in the file.
Definition: tinyxml.h:1469
TiXmlDeclaration()
Construct an empty declaration.
Definition: tinyxml.h:1472
+ Here is the call graph for this function:

◆ Column()

int TiXmlBase::Column ( ) const
inlineinherited

See Row()

Definition at line 276 of file tinyxml.h.

References TiXmlCursor::col, and TiXmlBase::location.

Referenced by ticpp::Base::Column().

+ Here is the caller graph for this function:

◆ ConvertUTF32ToUTF8()

void TiXmlBase::ConvertUTF32ToUTF8 ( unsigned long  input,
char *  output,
int *  length 
)
staticprotectedinherited

Definition at line 100 of file tinyxmlparser.cpp.

Referenced by TiXmlBase::GetEntity().

102  {
103  const unsigned long BYTE_MASK = 0xBF;
104  const unsigned long BYTE_MARK = 0x80;
105  const unsigned long FIRST_BYTE_MARK[7] = {
106  0x00, 0x00, 0xC0, 0xE0, 0xF0, 0xF8, 0xFC};
107 
108  if (input < 0x80)
109  *length = 1;
110  else if (input < 0x800)
111  *length = 2;
112  else if (input < 0x10000)
113  *length = 3;
114  else if (input < 0x200000)
115  *length = 4;
116  else {
117  *length = 0;
118  return;
119  } // This code won't covert this correctly anyway.
120 
121  output += *length;
122 
123  // Scary scary fall throughs.
124  switch (*length) {
125  case 4:
126  --output;
127  *output = (char)((input | BYTE_MARK) & BYTE_MASK);
128  input >>= 6;
129 
130  case 3:
131  --output;
132  *output = (char)((input | BYTE_MARK) & BYTE_MASK);
133  input >>= 6;
134 
135  case 2:
136  --output;
137  *output = (char)((input | BYTE_MARK) & BYTE_MASK);
138  input >>= 6;
139 
140  case 1:
141  --output;
142  *output = (char)(input | FIRST_BYTE_MARK[*length]);
143  }
144 }
+ Here is the caller graph for this function:

◆ CopyTo() [1/2]

void TiXmlNode::CopyTo ( TiXmlNode target) const
protectedinherited

Definition at line 134 of file tinyxml.cpp.

References TiXmlBase::userData.

134  {
135  target->SetValue(value.c_str());
136  target->userData = userData;
137 }
void SetValue(const char *_value)
Changes the value of the node.
Definition: tinyxml.h:538
void * userData
Field containing a generic user pointer.
Definition: tinyxml.h:413
TIXML_STRING value
Definition: tinyxml.h:898

◆ CopyTo() [2/2]

void TiXmlDeclaration::CopyTo ( TiXmlDeclaration target) const
protected

Definition at line 1293 of file tinyxml.cpp.

Referenced by Clone(), operator=(), and TiXmlDeclaration().

1293  {
1294  TiXmlNode::CopyTo(target);
1295 
1296  target->version = version;
1297  target->encoding = encoding;
1298  target->standalone = standalone;
1299 }
TIXML_STRING standalone
Definition: tinyxml.h:1531
TIXML_STRING version
Definition: tinyxml.h:1529
void CopyTo(TiXmlNode *target) const
Definition: tinyxml.cpp:134
TIXML_STRING encoding
Definition: tinyxml.h:1530
+ Here is the caller graph for this function:

◆ DeleteSpawnedWrappers()

void TiCppRC::DeleteSpawnedWrappers ( )
inherited

Delete all container objects we've spawned with 'new'.

Definition at line 929 of file ticpp.cpp.

929  {
930  std::vector< Base* >::reverse_iterator wrapper;
931 
932  for (wrapper = m_spawnedWrappers.rbegin(); wrapper != m_spawnedWrappers.rend();
933  ++wrapper) {
934  delete *wrapper;
935  }
936 
937  m_spawnedWrappers.clear();
938 }
std::vector< ticpp::Base *> m_spawnedWrappers
Remember all wrappers that we&#39;ve created with &#39;new&#39; - ( e.g.
Definition: ticpprc.h:63

◆ EncodeString()

void TiXmlBase::EncodeString ( const TIXML_STRING str,
TIXML_STRING out 
)
staticinherited

Expands entities in a string.

Note this should not contian the tag's '<', '>', etc, or they will be transformed into entities!

Definition at line 50 of file tinyxml.cpp.

50  {
51  int i = 0;
52 
53  while (i < (int)str.length()) {
54  unsigned char c = (unsigned char)str[i];
55 
56  if (c == '&' && i < ((int)str.length() - 2) && str[i + 1] == '#' &&
57  str[i + 2] == 'x') {
58  // Hexadecimal character reference.
59  // Pass through unchanged.
60  // &#xA9; -- copyright symbol, for example.
61  //
62  // The -1 is a bug fix from Rob Laveaux. It keeps
63  // an overflow from happening if there is no ';'.
64  // There are actually 2 ways to exit this loop -
65  // while fails (error case) and break (semicolon found).
66  // However, there is no mechanism (currently) for
67  // this function to return an error.
68  while (i < (int)str.length() - 1) {
69  outString->append(str.c_str() + i, 1);
70  ++i;
71 
72  if (str[i] == ';') break;
73  }
74  } else if (c == '&') {
75  outString->append(entity[0].str, entity[0].strLength);
76  ++i;
77  } else if (c == '<') {
78  outString->append(entity[1].str, entity[1].strLength);
79  ++i;
80  } else if (c == '>') {
81  outString->append(entity[2].str, entity[2].strLength);
82  ++i;
83  } else if (c == '\"') {
84  outString->append(entity[3].str, entity[3].strLength);
85  ++i;
86  } else if (c == '\'') {
87  outString->append(entity[4].str, entity[4].strLength);
88  ++i;
89  } else if (c < 32) {
90  // Easy pass at non-alpha/numeric/symbol
91  // Below 32 is symbolic.
92  char buf[32];
93 
94 #if defined(TIXML_SNPRINTF)
95  TIXML_SNPRINTF(buf, sizeof(buf), "&#x%02X;", (unsigned)(c & 0xff));
96 #else
97  sprintf(buf, "&#x%02X;", (unsigned)(c & 0xff));
98 #endif
99 
100  //*ME: warning C4267: convert 'size_t' to 'int'
101  //*ME: Int-Cast to make compiler happy ...
102  outString->append(buf, (int)strlen(buf));
103  ++i;
104  } else {
105  // char realc = (char) c;
106  // outString->append( &realc, 1 );
107  *outString += (char)c; // somewhat more efficient function call.
108  ++i;
109  }
110  }
111 }
static Entity entity[NUM_ENTITY]
Definition: tinyxml.h:444

◆ Encoding()

const char* TiXmlDeclaration::Encoding ( ) const
inline

Encoding. Will return an empty string if none was found.

Definition at line 1495 of file tinyxml.h.

Referenced by TiXmlDocument::Parse().

1495 { return encoding.c_str(); }
TIXML_STRING encoding
Definition: tinyxml.h:1530
+ Here is the caller graph for this function:

◆ FirstChild() [1/6]

const TiXmlNode* TiXmlNode::FirstChild ( ) const
inlineinherited

The first child of this node. Will be null if there are no children.

Definition at line 552 of file tinyxml.h.

References TiXmlNode::firstChild.

Referenced by TiXmlNode::FirstChildElement(), and TiXmlNode::IterateChildren().

+ Here is the caller graph for this function:

◆ FirstChild() [2/6]

TiXmlNode* TiXmlNode::FirstChild ( )
inlineinherited

Definition at line 555 of file tinyxml.h.

References TiXmlNode::firstChild.

Referenced by TiXmlHandle::Child(), ticpp::Node::FirstChild(), and TiXmlHandle::FirstChild().

555 { return firstChild; }
TiXmlNode * firstChild
Definition: tinyxml.h:895
+ Here is the caller graph for this function:

◆ FirstChild() [3/6]

const TiXmlNode * TiXmlNode::FirstChild ( const char *  value) const
inherited

The first child of this node with the matching 'value'. Will be null if none found. The first child of this node with the matching 'value'. Will be null if none found.

Definition at line 311 of file tinyxml.cpp.

References TiXmlNode::firstChild, TiXmlNode::next, and TiXmlNode::Value().

Referenced by TiXmlNode::FirstChild(), TiXmlNode::FirstChildElement(), and TiXmlNode::IterateChildren().

311  {
312  const TiXmlNode* node;
313 
314  for (node = firstChild; node; node = node->next) {
315  if (strcmp(node->Value(), _value) == 0) return node;
316  }
317 
318  return 0;
319 }
TiXmlNode * firstChild
Definition: tinyxml.h:895
const char * Value() const
The meaning of &#39;value&#39; changes for the specific type of TiXmlNode.
Definition: tinyxml.h:517
The parent class for everything in the Document Object Model.
Definition: tinyxml.h:454
TiXmlNode * next
Definition: tinyxml.h:901
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ FirstChild() [4/6]

TiXmlNode* TiXmlNode::FirstChild ( const char *  _value)
inlineinherited

Definition at line 564 of file tinyxml.h.

References TiXmlNode::FirstChild().

Referenced by TiXmlHandle::Child(), ticpp::Node::FirstChild(), and TiXmlHandle::FirstChild().

564  {
565  // Call through to the const version - safe since nothing is changed.
566  // Exiting
567  // syntax: cast this to a const (always safe)
568  // call the method, cast the return back to non-const.
569  return const_cast< TiXmlNode* >(
570  (const_cast< const TiXmlNode* >(this))->FirstChild(_value));
571  }
The parent class for everything in the Document Object Model.
Definition: tinyxml.h:454
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ FirstChild() [5/6]

const TiXmlNode* TiXmlNode::FirstChild ( const std::string &  _value) const
inlineinherited

STL std::string form.

Definition at line 587 of file tinyxml.h.

◆ FirstChild() [6/6]

TiXmlNode* TiXmlNode::FirstChild ( const std::string &  _value)
inlineinherited

STL std::string form.

Definition at line 590 of file tinyxml.h.

◆ FirstChildElement() [1/6]

const TiXmlElement * TiXmlNode::FirstChildElement ( ) const
inherited

Convenience function to get through elements.

Definition at line 384 of file tinyxml.cpp.

References TiXmlNode::FirstChild(), TiXmlNode::NextSibling(), and TiXmlNode::ToElement().

Referenced by TiXmlNode::FirstChildElement().

384  {
385  const TiXmlNode* node;
386 
387  for (node = FirstChild(); node; node = node->NextSibling()) {
388  if (node->ToElement()) return node->ToElement();
389  }
390 
391  return 0;
392 }
virtual const TiXmlElement * ToElement() const
Cast to a more defined type. Will return null if not of the requested type.
Definition: tinyxml.h:788
const TiXmlNode * FirstChild() const
The first child of this node. Will be null if there are no children.
Definition: tinyxml.h:552
The parent class for everything in the Document Object Model.
Definition: tinyxml.h:454
const TiXmlNode * NextSibling(const std::string &_value) const
STL std::string form.
Definition: tinyxml.h:695
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ FirstChildElement() [2/6]

TiXmlElement* TiXmlNode::FirstChildElement ( )
inlineinherited

Definition at line 745 of file tinyxml.h.

References TiXmlNode::FirstChildElement().

Referenced by TiXmlHandle::ChildElement(), ticpp::Node::FirstChildElement(), and TiXmlHandle::FirstChildElement().

745  {
746  return const_cast< TiXmlElement* >(
747  (const_cast< const TiXmlNode* >(this))->FirstChildElement());
748  }
The parent class for everything in the Document Object Model.
Definition: tinyxml.h:454
The element is a container class.
Definition: tinyxml.h:1095
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ FirstChildElement() [3/6]

const TiXmlElement * TiXmlNode::FirstChildElement ( const char *  _value) const
inherited

Convenience function to get through elements.

Definition at line 394 of file tinyxml.cpp.

References TiXmlNode::FirstChild(), TiXmlNode::NextSibling(), and TiXmlNode::ToElement().

Referenced by TiXmlNode::FirstChildElement().

394  {
395  const TiXmlNode* node;
396 
397  for (node = FirstChild(_value); node; node = node->NextSibling(_value)) {
398  if (node->ToElement()) return node->ToElement();
399  }
400 
401  return 0;
402 }
virtual const TiXmlElement * ToElement() const
Cast to a more defined type. Will return null if not of the requested type.
Definition: tinyxml.h:788
const TiXmlNode * FirstChild() const
The first child of this node. Will be null if there are no children.
Definition: tinyxml.h:552
The parent class for everything in the Document Object Model.
Definition: tinyxml.h:454
const TiXmlNode * NextSibling(const std::string &_value) const
STL std::string form.
Definition: tinyxml.h:695
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ FirstChildElement() [4/6]

TiXmlElement* TiXmlNode::FirstChildElement ( const char *  _value)
inlineinherited

Definition at line 752 of file tinyxml.h.

References TiXmlNode::FirstChildElement().

Referenced by TiXmlHandle::ChildElement(), ticpp::Node::FirstChildElement(), and TiXmlHandle::FirstChildElement().

752  {
753  return const_cast< TiXmlElement* >(
754  (const_cast< const TiXmlNode* >(this))->FirstChildElement(_value));
755  }
The parent class for everything in the Document Object Model.
Definition: tinyxml.h:454
The element is a container class.
Definition: tinyxml.h:1095
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ FirstChildElement() [5/6]

const TiXmlElement* TiXmlNode::FirstChildElement ( const std::string &  _value) const
inlineinherited

STL std::string form.

Definition at line 758 of file tinyxml.h.

◆ FirstChildElement() [6/6]

TiXmlElement* TiXmlNode::FirstChildElement ( const std::string &  _value)
inlineinherited

STL std::string form.

Definition at line 761 of file tinyxml.h.

◆ GetChar()

static const char* TiXmlBase::GetChar ( const char *  p,
char *  _value,
int *  length,
TiXmlEncoding  encoding 
)
inlinestaticprotectedinherited

Definition at line 368 of file tinyxml.h.

References TiXmlBase::GetEntity(), TIXML_ENCODING_UTF8, and TiXmlBase::utf8ByteTable.

Referenced by TiXmlBase::ReadText().

368  {
369  assert(p);
370 
371  if (encoding == TIXML_ENCODING_UTF8) {
372  *length = utf8ByteTable[*((const unsigned char*)p)];
373  assert(*length >= 0 && *length < 5);
374  } else {
375  *length = 1;
376  }
377 
378  if (*length == 1) {
379  if (*p == '&') return GetEntity(p, _value, length, encoding);
380 
381  *_value = *p;
382  return p + 1;
383  } else if (*length) {
384  // strncpy( _value, p, *length ); // lots of compilers don't like this
385  // function (unsafe),
386  // and the null terminator isn't needed
387  for (int i = 0; p[i] && i < *length; ++i) {
388  _value[i] = p[i];
389  }
390 
391  return p + (*length);
392  } else {
393  // Not valid text.
394  return 0;
395  }
396  }
static const int utf8ByteTable[256]
Definition: tinyxml.h:290
static const char * GetEntity(const char *in, char *value, int *length, TiXmlEncoding encoding)
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ GetDocument() [1/2]

const TiXmlDocument * TiXmlNode::GetDocument ( ) const
inherited

Return a pointer to the Document this node lives in.

Returns null if not in a document.

Definition at line 424 of file tinyxml.cpp.

References TiXmlNode::parent.

424  {
425  const TiXmlNode* node;
426 
427  for (node = this; node; node = node->parent) {
428  if (node->ToDocument()) return node->ToDocument();
429  }
430 
431  return 0;
432 }
virtual const TiXmlDocument * ToDocument() const
Cast to a more defined type. Will return null if not of the requested type.
Definition: tinyxml.h:784
TiXmlNode * parent
Definition: tinyxml.h:892
The parent class for everything in the Document Object Model.
Definition: tinyxml.h:454

◆ GetDocument() [2/2]

TiXmlDocument* TiXmlNode::GetDocument ( )
inlineinherited

Definition at line 776 of file tinyxml.h.

776  {
777  return const_cast< TiXmlDocument* >(
778  (const_cast< const TiXmlNode* >(this))->GetDocument());
779  }
Always the top level node.
Definition: tinyxml.h:1655
The parent class for everything in the Document Object Model.
Definition: tinyxml.h:454

◆ GetEntity()

const char * TiXmlBase::GetEntity ( const char *  in,
char *  value,
int *  length,
TiXmlEncoding  encoding 
)
staticprotectedinherited

Definition at line 442 of file tinyxmlparser.cpp.

References TiXmlBase::Entity::chr, TiXmlBase::ConvertUTF32ToUTF8(), TiXmlBase::entity, TiXmlBase::NUM_ENTITY, TiXmlBase::Entity::strLength, and TIXML_ENCODING_UTF8.

Referenced by TiXmlBase::GetChar().

445  {
446  // Presume an entity, and pull it out.
447  TIXML_STRING ent;
448  int i;
449  *length = 0;
450 
451  if (*(p + 1) && *(p + 1) == '#' && *(p + 2)) {
452  unsigned long ucs = 0;
453  ptrdiff_t delta = 0;
454  unsigned mult = 1;
455 
456  if (*(p + 2) == 'x') {
457  // Hexadecimal.
458  if (!*(p + 3)) return 0;
459 
460  const char* q = p + 3;
461  q = strchr(q, ';');
462 
463  if (!q || !*q) return 0;
464 
465  delta = q - p;
466  --q;
467 
468  while (*q != 'x') {
469  if (*q >= '0' && *q <= '9')
470  ucs += mult * (*q - '0');
471  else if (*q >= 'a' && *q <= 'f')
472  ucs += mult * (*q - 'a' + 10);
473  else if (*q >= 'A' && *q <= 'F')
474  ucs += mult * (*q - 'A' + 10);
475  else
476  return 0;
477 
478  mult *= 16;
479  --q;
480  }
481  } else {
482  // Decimal.
483  if (!*(p + 2)) return 0;
484 
485  const char* q = p + 2;
486  q = strchr(q, ';');
487 
488  if (!q || !*q) return 0;
489 
490  delta = q - p;
491  --q;
492 
493  while (*q != '#') {
494  if (*q >= '0' && *q <= '9')
495  ucs += mult * (*q - '0');
496  else
497  return 0;
498 
499  mult *= 10;
500  --q;
501  }
502  }
503 
504  if (encoding == TIXML_ENCODING_UTF8) {
505  // convert the UCS to UTF-8
506  ConvertUTF32ToUTF8(ucs, value, length);
507  } else {
508  *value = (char)ucs;
509  *length = 1;
510  }
511 
512  return p + delta + 1;
513  }
514 
515  // Now try to match it.
516  for (i = 0; i < NUM_ENTITY; ++i) {
517  if (strncmp(entity[i].str, p, entity[i].strLength) == 0) {
518  assert(strlen(entity[i].str) == entity[i].strLength);
519  *value = entity[i].chr;
520  *length = 1;
521  return (p + entity[i].strLength);
522  }
523  }
524 
525  // So it wasn't an entity, its unrecognized, or something like that.
526  *value = *p; // Don't put back the last one, since we return it!
527  //*length = 1; // Leave unrecognized entities - this doesn't really work.
528  // Just writes strange XML.
529  return p + 1;
530 }
static void ConvertUTF32ToUTF8(unsigned long input, char *output, int *length)
static Entity entity[NUM_ENTITY]
Definition: tinyxml.h:444
#define TIXML_STRING
Definition: tinyxml.h:60
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ GetUserData() [1/2]

void* TiXmlBase::GetUserData ( )
inlineinherited

Get a pointer to arbitrary user data.

Definition at line 281 of file tinyxml.h.

References TiXmlBase::userData.

◆ GetUserData() [2/2]

const void* TiXmlBase::GetUserData ( ) const
inlineinherited

Get a pointer to arbitrary user data.

Definition at line 284 of file tinyxml.h.

References TiXmlBase::userData.

◆ Identify()

TiXmlNode * TiXmlNode::Identify ( const char *  start,
TiXmlEncoding  encoding 
)
protectedinherited

Definition at line 788 of file tinyxmlparser.cpp.

References TiXmlBase::IsAlpha(), TiXmlNode::parent, TiXmlText::SetCDATA(), TiXmlDocument::SetError(), TiXmlBase::SkipWhiteSpace(), TiXmlBase::StringEqual(), TIXML_ENCODING_UNKNOWN, TiXmlBase::TIXML_ERROR_OUT_OF_MEMORY, TiXmlText::TiXmlElement, and TiXmlText::TiXmlText().

788  {
789  TiXmlNode* returnNode = 0;
790 
791  p = SkipWhiteSpace(p, encoding);
792 
793  if (!p || !*p || *p != '<') {
794  return 0;
795  }
796 
797  TiXmlDocument* doc = GetDocument();
798  p = SkipWhiteSpace(p, encoding);
799 
800  if (!p || !*p) {
801  return 0;
802  }
803 
804  // What is this thing?
805  // - Elements start with a letter or underscore, but xml is reserved.
806  // - Comments: <!--
807  // - Decleration: <?xml
808  // - StylesheetReference <?xml-stylesheet
809  // - Everthing else is unknown to tinyxml.
810  //
811 
812  const char* xmlHeader = {"<?xml"};
813  const char* xmlSSHeader = {"<?xml-stylesheet"};
814  const char* commentHeader = {"<!--"};
815  const char* dtdHeader = {"<!"};
816  const char* cdataHeader = {"<![CDATA["};
817 
818  if (StringEqual(p, xmlSSHeader, true, encoding)) {
819 #ifdef DEBUG_PARSER
820  TIXML_LOG("XML parsing Stylesheet Reference\n");
821 #endif
822  returnNode = new TiXmlStylesheetReference();
823  } else if (StringEqual(p, xmlHeader, true, encoding)) {
824 #ifdef DEBUG_PARSER
825  TIXML_LOG("XML parsing Declaration\n");
826 #endif
827  returnNode = new TiXmlDeclaration();
828  } else if (StringEqual(p, commentHeader, false, encoding)) {
829 #ifdef DEBUG_PARSER
830  TIXML_LOG("XML parsing Comment\n");
831 #endif
832  returnNode = new TiXmlComment();
833  } else if (StringEqual(p, cdataHeader, false, encoding)) {
834 #ifdef DEBUG_PARSER
835  TIXML_LOG("XML parsing CDATA\n");
836 #endif
837  TiXmlText* text = new TiXmlText("");
838  text->SetCDATA(true);
839  returnNode = text;
840  } else if (StringEqual(p, dtdHeader, false, encoding)) {
841 #ifdef DEBUG_PARSER
842  TIXML_LOG("XML parsing Unknown(1)\n");
843 #endif
844  returnNode = new TiXmlUnknown();
845  } else if (IsAlpha(*(p + 1), encoding) || *(p + 1) == '_') {
846 #ifdef DEBUG_PARSER
847  TIXML_LOG("XML parsing Element\n");
848 #endif
849  returnNode = new TiXmlElement("");
850  } else {
851 #ifdef DEBUG_PARSER
852  TIXML_LOG("XML parsing Unknown(2)\n");
853 #endif
854  returnNode = new TiXmlUnknown();
855  }
856 
857  if (returnNode) {
858  // Set the parent, so it can report errors
859  returnNode->parent = this;
860  } else {
861  if (doc)
863  }
864 
865  return returnNode;
866 }
A stylesheet reference looks like this:
Definition: tinyxml.h:1543
In correct XML the declaration is the first entry in the file.
Definition: tinyxml.h:1469
Any tag that tinyXml doesn&#39;t recognize is saved as an unknown.
Definition: tinyxml.h:1608
void SetCDATA(bool _cdata)
Turns on or off a CDATA representation of text.
Definition: tinyxml.h:1422
Always the top level node.
Definition: tinyxml.h:1655
static const char * SkipWhiteSpace(const char *, TiXmlEncoding encoding)
friend class TiXmlElement
Definition: tinyxml.h:456
const TiXmlDocument * GetDocument() const
Return a pointer to the Document this node lives in.
Definition: tinyxml.cpp:424
static bool StringEqual(const char *p, const char *endTag, bool ignoreCase, TiXmlEncoding encoding)
TiXmlNode * parent
Definition: tinyxml.h:892
void SetError(int err, const char *errorLocation, TiXmlParsingData *prevData, TiXmlEncoding encoding)
The parent class for everything in the Document Object Model.
Definition: tinyxml.h:454
XML text.
Definition: tinyxml.h:1386
An XML comment.
Definition: tinyxml.h:1330
static int IsAlpha(unsigned char anyByte, TiXmlEncoding encoding)
+ Here is the call graph for this function:

◆ InsertAfterChild()

TiXmlNode * TiXmlNode::InsertAfterChild ( TiXmlNode afterThis,
const TiXmlNode addThis 
)
inherited

Add a new node related to this.

Adds a child after the specified child. Returns a pointer to the new object or nullptr if an error occured.

Definition at line 231 of file tinyxml.cpp.

References TiXmlNode::Clone(), TiXmlNode::DOCUMENT, TiXmlNode::lastChild, TiXmlNode::next, TiXmlNode::parent, TiXmlNode::prev, and TiXmlNode::Type().

Referenced by ticpp::Node::InsertAfterChild().

232  {
233  if (!afterThis || afterThis->parent != this) {
234  return 0;
235  }
236 
237  if (addThis.Type() == TiXmlNode::DOCUMENT) {
238  if (GetDocument())
241 
242  return 0;
243  }
244 
245  TiXmlNode* node = addThis.Clone();
246 
247  if (!node) return 0;
248 
249  node->parent = this;
250 
251  node->prev = afterThis;
252  node->next = afterThis->next;
253 
254  if (afterThis->next) {
255  afterThis->next->prev = node;
256  } else {
257  assert(lastChild == afterThis);
258  lastChild = node;
259  }
260 
261  afterThis->next = node;
262  return node;
263 }
TiXmlNode * prev
Definition: tinyxml.h:900
const TiXmlDocument * GetDocument() const
Return a pointer to the Document this node lives in.
Definition: tinyxml.cpp:424
int Type() const
Query the type (as an enumerated value, above) of this node.
Definition: tinyxml.h:770
TiXmlNode * parent
Definition: tinyxml.h:892
void SetError(int err, const char *errorLocation, TiXmlParsingData *prevData, TiXmlEncoding encoding)
The parent class for everything in the Document Object Model.
Definition: tinyxml.h:454
TiXmlNode * next
Definition: tinyxml.h:901
TiXmlNode * lastChild
Definition: tinyxml.h:896
virtual TiXmlNode * Clone() const =0
Create an exact duplicate of this node and return it.
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ InsertBeforeChild()

TiXmlNode * TiXmlNode::InsertBeforeChild ( TiXmlNode beforeThis,
const TiXmlNode addThis 
)
inherited

Add a new node related to this.

Adds a child before the specified child. Returns a pointer to the new object or nullptr if an error occured.

Definition at line 197 of file tinyxml.cpp.

References TiXmlNode::Clone(), TiXmlNode::DOCUMENT, TiXmlNode::firstChild, TiXmlNode::next, TiXmlNode::parent, TiXmlNode::prev, and TiXmlNode::Type().

Referenced by ticpp::Node::InsertBeforeChild().

198  {
199  if (!beforeThis || beforeThis->parent != this) {
200  return 0;
201  }
202 
203  if (addThis.Type() == TiXmlNode::DOCUMENT) {
204  if (GetDocument())
207 
208  return 0;
209  }
210 
211  TiXmlNode* node = addThis.Clone();
212 
213  if (!node) return 0;
214 
215  node->parent = this;
216 
217  node->next = beforeThis;
218  node->prev = beforeThis->prev;
219 
220  if (beforeThis->prev) {
221  beforeThis->prev->next = node;
222  } else {
223  assert(firstChild == beforeThis);
224  firstChild = node;
225  }
226 
227  beforeThis->prev = node;
228  return node;
229 }
TiXmlNode * prev
Definition: tinyxml.h:900
TiXmlNode * firstChild
Definition: tinyxml.h:895
const TiXmlDocument * GetDocument() const
Return a pointer to the Document this node lives in.
Definition: tinyxml.cpp:424
int Type() const
Query the type (as an enumerated value, above) of this node.
Definition: tinyxml.h:770
TiXmlNode * parent
Definition: tinyxml.h:892
void SetError(int err, const char *errorLocation, TiXmlParsingData *prevData, TiXmlEncoding encoding)
The parent class for everything in the Document Object Model.
Definition: tinyxml.h:454
TiXmlNode * next
Definition: tinyxml.h:901
virtual TiXmlNode * Clone() const =0
Create an exact duplicate of this node and return it.
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ InsertEndChild()

TiXmlNode * TiXmlNode::InsertEndChild ( const TiXmlNode addThis)
inherited

Add a new node related to this.

Adds a child past the LastChild. Returns a pointer to the new object or nullptr if an error occured.

Definition at line 181 of file tinyxml.cpp.

References TiXmlNode::Clone(), TiXmlNode::DOCUMENT, TiXmlNode::LinkEndChild(), and TiXmlNode::Type().

Referenced by ticpp::Node::InsertEndChild().

181  {
182  if (addThis.Type() == TiXmlNode::DOCUMENT) {
183  if (GetDocument())
186 
187  return 0;
188  }
189 
190  TiXmlNode* node = addThis.Clone();
191 
192  if (!node) return 0;
193 
194  return LinkEndChild(node);
195 }
TiXmlNode * LinkEndChild(TiXmlNode *addThis)
Add a new node related to this.
Definition: tinyxml.cpp:153
const TiXmlDocument * GetDocument() const
Return a pointer to the Document this node lives in.
Definition: tinyxml.cpp:424
int Type() const
Query the type (as an enumerated value, above) of this node.
Definition: tinyxml.h:770
void SetError(int err, const char *errorLocation, TiXmlParsingData *prevData, TiXmlEncoding encoding)
The parent class for everything in the Document Object Model.
Definition: tinyxml.h:454
virtual TiXmlNode * Clone() const =0
Create an exact duplicate of this node and return it.
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ IsAlpha()

int TiXmlBase::IsAlpha ( unsigned char  anyByte,
TiXmlEncoding  encoding 
)
staticprotectedinherited

Definition at line 146 of file tinyxmlparser.cpp.

Referenced by TiXmlNode::Identify(), and TiXmlBase::ReadName().

147  {
148  // This will only work for low-ascii, everything else is assumed to be a valid
149  // letter. I'm not sure this is the best approach, but it is quite tricky
150  // trying
151  // to figure out alhabetical vs. not across encoding. So take a very
152  // conservative approach.
153 
154  // if ( encoding == TIXML_ENCODING_UTF8 )
155  // {
156  if (anyByte < 127)
157  return isalpha(anyByte);
158  else
159  return 1; // What else to do? The unicode set is huge...get the english
160  // ones
161  // right.
162 
163  // }
164  // else
165  // {
166  // return isalpha( anyByte );
167  // }
168 }
+ Here is the caller graph for this function:

◆ IsAlphaNum()

int TiXmlBase::IsAlphaNum ( unsigned char  anyByte,
TiXmlEncoding  encoding 
)
staticprotectedinherited

Definition at line 170 of file tinyxmlparser.cpp.

Referenced by TiXmlBase::ReadName().

171  {
172  // This will only work for low-ascii, everything else is assumed to be a valid
173  // letter. I'm not sure this is the best approach, but it is quite tricky
174  // trying
175  // to figure out alhabetical vs. not across encoding. So take a very
176  // conservative approach.
177 
178  // if ( encoding == TIXML_ENCODING_UTF8 )
179  // {
180  if (anyByte < 127)
181  return isalnum(anyByte);
182  else
183  return 1; // What else to do? The unicode set is huge...get the english
184  // ones
185  // right.
186 
187  // }
188  // else
189  // {
190  // return isalnum( anyByte );
191  // }
192 }
+ Here is the caller graph for this function:

◆ IsWhiteSpace() [1/2]

static bool TiXmlBase::IsWhiteSpace ( char  c)
inlinestaticprotectedinherited

Definition at line 328 of file tinyxml.h.

Referenced by TiXmlBase::IsWhiteSpace(), TiXmlAttribute::Parse(), Parse(), TiXmlStylesheetReference::Parse(), TiXmlBase::ReadText(), and TiXmlBase::SkipWhiteSpace().

328  {
329  return (std::isspace((unsigned char)c) || c == '\n' || c == '\r');
330  }
+ Here is the caller graph for this function:

◆ IsWhiteSpace() [2/2]

static bool TiXmlBase::IsWhiteSpace ( int  c)
inlinestaticprotectedinherited

Definition at line 331 of file tinyxml.h.

References TiXmlBase::IsWhiteSpace().

Referenced by TiXmlElement::StreamIn(), and TiXmlBase::StreamWhiteSpace().

331  {
332  if (c < 256) return IsWhiteSpace((char)c);
333 
334  return false; // Again, only truly correct for English/Latin...but usually
335  // works.
336  }
static bool IsWhiteSpace(char c)
Definition: tinyxml.h:328
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ IsWhiteSpaceCondensed()

static bool TiXmlBase::IsWhiteSpaceCondensed ( )
inlinestaticinherited

Return the current white space setting.

Definition at line 247 of file tinyxml.h.

References TiXmlBase::condenseWhiteSpace.

Referenced by TiXmlElement::ReadValue().

247 { return condenseWhiteSpace; }
static bool condenseWhiteSpace
Definition: tinyxml.h:445
+ Here is the caller graph for this function:

◆ IterateChildren() [1/6]

const TiXmlNode * TiXmlNode::IterateChildren ( const TiXmlNode previous) const
inherited

An alternate way to walk the children of a node.

One way to iterate over nodes is:

  for( child = parent->FirstChild(); child; child = child->NextSibling() )

IterateChildren does the same thing with the syntax:

  child = 0;
  while( child = parent->IterateChildren( child ) )

IterateChildren takes the previous child as input and finds the next one. If the previous child is null, it returns the first. IterateChildren will return null when done.

Definition at line 331 of file tinyxml.cpp.

References TiXmlNode::FirstChild(), TiXmlNode::NextSibling(), and TiXmlNode::parent.

Referenced by TiXmlNode::IterateChildren().

331  {
332  if (!previous) {
333  return FirstChild();
334  } else {
335  assert(previous->parent == this);
336  return previous->NextSibling();
337  }
338 }
const TiXmlNode * FirstChild() const
The first child of this node. Will be null if there are no children.
Definition: tinyxml.h:552
TiXmlNode * parent
Definition: tinyxml.h:892
const TiXmlNode * NextSibling(const std::string &_value) const
STL std::string form.
Definition: tinyxml.h:695
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ IterateChildren() [2/6]

TiXmlNode* TiXmlNode::IterateChildren ( const TiXmlNode previous)
inlineinherited

Definition at line 618 of file tinyxml.h.

References TiXmlNode::IterateChildren().

Referenced by ticpp::Node::IterateChildren().

618  {
619  return const_cast< TiXmlNode* >(
620  (const_cast< const TiXmlNode* >(this))->IterateChildren(previous));
621  }
The parent class for everything in the Document Object Model.
Definition: tinyxml.h:454
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ IterateChildren() [3/6]

const TiXmlNode * TiXmlNode::IterateChildren ( const char *  value,
const TiXmlNode previous 
) const
inherited

This flavor of IterateChildren searches for children with a particular 'value'.

Definition at line 340 of file tinyxml.cpp.

References TiXmlNode::FirstChild(), TiXmlNode::NextSibling(), and TiXmlNode::parent.

Referenced by TiXmlNode::IterateChildren().

341  {
342  if (!previous) {
343  return FirstChild(val);
344  } else {
345  assert(previous->parent == this);
346  return previous->NextSibling(val);
347  }
348 }
const TiXmlNode * FirstChild() const
The first child of this node. Will be null if there are no children.
Definition: tinyxml.h:552
TiXmlNode * parent
Definition: tinyxml.h:892
const TiXmlNode * NextSibling(const std::string &_value) const
STL std::string form.
Definition: tinyxml.h:695
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ IterateChildren() [4/6]

TiXmlNode* TiXmlNode::IterateChildren ( const char *  _value,
const TiXmlNode previous 
)
inlineinherited

Definition at line 627 of file tinyxml.h.

References TiXmlNode::IterateChildren().

627  {
628  return const_cast< TiXmlNode* >(
629  (const_cast< const TiXmlNode* >(this))->IterateChildren(_value, previous));
630  }
The parent class for everything in the Document Object Model.
Definition: tinyxml.h:454
+ Here is the call graph for this function:

◆ IterateChildren() [5/6]

const TiXmlNode* TiXmlNode::IterateChildren ( const std::string &  _value,
const TiXmlNode previous 
) const
inlineinherited

STL std::string form.

Definition at line 633 of file tinyxml.h.

◆ IterateChildren() [6/6]

TiXmlNode* TiXmlNode::IterateChildren ( const std::string &  _value,
const TiXmlNode previous 
)
inlineinherited

STL std::string form.

Definition at line 637 of file tinyxml.h.

◆ LastChild() [1/6]

const TiXmlNode* TiXmlNode::LastChild ( ) const
inlineinherited

Definition at line 572 of file tinyxml.h.

References TiXmlNode::lastChild.

572  {
573  return lastChild;
574  }
TiXmlNode * lastChild
Definition: tinyxml.h:896

◆ LastChild() [2/6]

TiXmlNode* TiXmlNode::LastChild ( )
inlineinherited

The last child of this node. Will be null if there are no children.

Definition at line 575 of file tinyxml.h.

References TiXmlNode::lastChild.

Referenced by ticpp::Node::LastChild().

575 { return lastChild; }
TiXmlNode * lastChild
Definition: tinyxml.h:896
+ Here is the caller graph for this function:

◆ LastChild() [3/6]

const TiXmlNode * TiXmlNode::LastChild ( const char *  value) const
inherited

Definition at line 321 of file tinyxml.cpp.

References TiXmlNode::lastChild, TiXmlNode::prev, and TiXmlNode::Value().

Referenced by TiXmlNode::LastChild().

321  {
322  const TiXmlNode* node;
323 
324  for (node = lastChild; node; node = node->prev) {
325  if (strcmp(node->Value(), _value) == 0) return node;
326  }
327 
328  return 0;
329 }
TiXmlNode * prev
Definition: tinyxml.h:900
const char * Value() const
The meaning of &#39;value&#39; changes for the specific type of TiXmlNode.
Definition: tinyxml.h:517
The parent class for everything in the Document Object Model.
Definition: tinyxml.h:454
TiXmlNode * lastChild
Definition: tinyxml.h:896
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ LastChild() [4/6]

TiXmlNode* TiXmlNode::LastChild ( const char *  _value)
inlineinherited

The last child of this node matching 'value'. Will be null if there are no children.

Definition at line 581 of file tinyxml.h.

References TiXmlNode::LastChild().

Referenced by ticpp::Node::LastChild().

581  {
582  return const_cast< TiXmlNode* >(
583  (const_cast< const TiXmlNode* >(this))->LastChild(_value));
584  }
The parent class for everything in the Document Object Model.
Definition: tinyxml.h:454
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ LastChild() [5/6]

const TiXmlNode* TiXmlNode::LastChild ( const std::string &  _value) const
inlineinherited

STL std::string form.

Definition at line 593 of file tinyxml.h.

◆ LastChild() [6/6]

TiXmlNode* TiXmlNode::LastChild ( const std::string &  _value)
inlineinherited

STL std::string form.

Definition at line 596 of file tinyxml.h.

◆ LinkEndChild()

TiXmlNode * TiXmlNode::LinkEndChild ( TiXmlNode addThis)
inherited

Add a new node related to this.

Adds a child past the LastChild.

NOTE: the node to be added is passed by pointer, and will be henceforth owned (and deleted) by tinyXml. This method is efficient and avoids an extra copy, but should be used with care as it uses a different memory model than the other insert functions.

See also
InsertEndChild

Definition at line 153 of file tinyxml.cpp.

References TiXmlNode::DOCUMENT, TiXmlNode::firstChild, TiXmlNode::lastChild, TiXmlNode::next, TiXmlNode::parent, TiXmlNode::prev, and TiXmlNode::Type().

Referenced by TiXmlNode::InsertEndChild(), and ticpp::Node::LinkEndChild().

153  {
154  assert(node->parent == 0 || node->parent == this);
155  assert(node->GetDocument() == 0 || node->GetDocument() == this->GetDocument());
156 
157  if (node->Type() == TiXmlNode::DOCUMENT) {
158  delete node;
159 
160  if (GetDocument())
163 
164  return 0;
165  }
166 
167  node->parent = this;
168 
169  node->prev = lastChild;
170  node->next = 0;
171 
172  if (lastChild)
173  lastChild->next = node;
174  else
175  firstChild = node; // it was an empty list.
176 
177  lastChild = node;
178  return node;
179 }
TiXmlNode * firstChild
Definition: tinyxml.h:895
const TiXmlDocument * GetDocument() const
Return a pointer to the Document this node lives in.
Definition: tinyxml.cpp:424
void SetError(int err, const char *errorLocation, TiXmlParsingData *prevData, TiXmlEncoding encoding)
TiXmlNode * next
Definition: tinyxml.h:901
TiXmlNode * lastChild
Definition: tinyxml.h:896
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ NextSibling() [1/6]

const TiXmlNode* TiXmlNode::NextSibling ( const std::string &  _value) const
inlineinherited

STL std::string form.

Definition at line 695 of file tinyxml.h.

◆ NextSibling() [2/6]

TiXmlNode* TiXmlNode::NextSibling ( const std::string &  _value)
inlineinherited

STL std::string form.

Definition at line 698 of file tinyxml.h.

◆ NextSibling() [3/6]

const TiXmlNode* TiXmlNode::NextSibling ( ) const
inlineinherited

Navigate to a sibling node.

Definition at line 704 of file tinyxml.h.

References TiXmlNode::next.

Referenced by TiXmlElement::Accept(), TiXmlDocument::Accept(), TiXmlNode::FirstChildElement(), TiXmlNode::IterateChildren(), TiXmlNode::NextSiblingElement(), and TiXmlDocument::Print().

704 { return next; }
TiXmlNode * next
Definition: tinyxml.h:901
+ Here is the caller graph for this function:

◆ NextSibling() [4/6]

TiXmlNode* TiXmlNode::NextSibling ( )
inlineinherited

Definition at line 705 of file tinyxml.h.

References TiXmlNode::next.

Referenced by TiXmlHandle::Child(), TiXmlElement::CopyTo(), TiXmlDocument::CopyTo(), ticpp::Node::NextSibling(), and TiXmlElement::Print().

705 { return next; }
TiXmlNode * next
Definition: tinyxml.h:901
+ Here is the caller graph for this function:

◆ NextSibling() [5/6]

const TiXmlNode * TiXmlNode::NextSibling ( const char *  _value) const
inherited

Navigate to a sibling node with the given 'value'.

Definition at line 350 of file tinyxml.cpp.

References TiXmlNode::next, and TiXmlNode::Value().

Referenced by TiXmlNode::FirstChildElement(), TiXmlNode::IterateChildren(), TiXmlNode::NextSibling(), and TiXmlNode::NextSiblingElement().

350  {
351  const TiXmlNode* node;
352 
353  for (node = next; node; node = node->next) {
354  if (strcmp(node->Value(), _value) == 0) return node;
355  }
356 
357  return 0;
358 }
const char * Value() const
The meaning of &#39;value&#39; changes for the specific type of TiXmlNode.
Definition: tinyxml.h:517
The parent class for everything in the Document Object Model.
Definition: tinyxml.h:454
TiXmlNode * next
Definition: tinyxml.h:901
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ NextSibling() [6/6]

TiXmlNode* TiXmlNode::NextSibling ( const char *  _next)
inlineinherited

Definition at line 709 of file tinyxml.h.

References TiXmlNode::NextSibling().

Referenced by TiXmlHandle::Child(), and ticpp::Node::NextSibling().

709  {
710  return const_cast< TiXmlNode* >(
711  (const_cast< const TiXmlNode* >(this))->NextSibling(_next));
712  }
The parent class for everything in the Document Object Model.
Definition: tinyxml.h:454
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ NextSiblingElement() [1/6]

const TiXmlElement * TiXmlNode::NextSiblingElement ( ) const
inherited

Convenience function to get through elements.

Calls NextSibling and ToElement. Will skip all non-Element nodes. Returns 0 if there is not another element.

Definition at line 404 of file tinyxml.cpp.

References TiXmlNode::NextSibling(), and TiXmlNode::ToElement().

Referenced by TiXmlNode::NextSiblingElement().

404  {
405  const TiXmlNode* node;
406 
407  for (node = NextSibling(); node; node = node->NextSibling()) {
408  if (node->ToElement()) return node->ToElement();
409  }
410 
411  return 0;
412 }
virtual const TiXmlElement * ToElement() const
Cast to a more defined type. Will return null if not of the requested type.
Definition: tinyxml.h:788
The parent class for everything in the Document Object Model.
Definition: tinyxml.h:454
const TiXmlNode * NextSibling() const
Navigate to a sibling node.
Definition: tinyxml.h:704
const TiXmlNode * NextSibling(const std::string &_value) const
STL std::string form.
Definition: tinyxml.h:695
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ NextSiblingElement() [2/6]

TiXmlElement* TiXmlNode::NextSiblingElement ( )
inlineinherited

Definition at line 719 of file tinyxml.h.

References TiXmlNode::NextSiblingElement().

Referenced by ticpp::Node::NextSiblingElement().

719  {
720  return const_cast< TiXmlElement* >(
721  (const_cast< const TiXmlNode* >(this))->NextSiblingElement());
722  }
The parent class for everything in the Document Object Model.
Definition: tinyxml.h:454
The element is a container class.
Definition: tinyxml.h:1095
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ NextSiblingElement() [3/6]

const TiXmlElement * TiXmlNode::NextSiblingElement ( const char *  _value) const
inherited

Convenience function to get through elements.

Calls NextSibling and ToElement. Will skip all non-Element nodes. Returns 0 if there is not another element.

Definition at line 414 of file tinyxml.cpp.

References TiXmlNode::NextSibling(), and TiXmlNode::ToElement().

Referenced by TiXmlNode::NextSiblingElement().

414  {
415  const TiXmlNode* node;
416 
417  for (node = NextSibling(_value); node; node = node->NextSibling(_value)) {
418  if (node->ToElement()) return node->ToElement();
419  }
420 
421  return 0;
422 }
virtual const TiXmlElement * ToElement() const
Cast to a more defined type. Will return null if not of the requested type.
Definition: tinyxml.h:788
The parent class for everything in the Document Object Model.
Definition: tinyxml.h:454
const TiXmlNode * NextSibling() const
Navigate to a sibling node.
Definition: tinyxml.h:704
const TiXmlNode * NextSibling(const std::string &_value) const
STL std::string form.
Definition: tinyxml.h:695
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ NextSiblingElement() [4/6]

TiXmlElement* TiXmlNode::NextSiblingElement ( const char *  _next)
inlineinherited

Definition at line 729 of file tinyxml.h.

References TiXmlNode::NextSiblingElement().

Referenced by ticpp::Node::NextSiblingElement().

729  {
730  return const_cast< TiXmlElement* >(
731  (const_cast< const TiXmlNode* >(this))->NextSiblingElement(_next));
732  }
The parent class for everything in the Document Object Model.
Definition: tinyxml.h:454
The element is a container class.
Definition: tinyxml.h:1095
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ NextSiblingElement() [5/6]

const TiXmlElement* TiXmlNode::NextSiblingElement ( const std::string &  _value) const
inlineinherited

STL std::string form.

Definition at line 735 of file tinyxml.h.

◆ NextSiblingElement() [6/6]

TiXmlElement* TiXmlNode::NextSiblingElement ( const std::string &  _value)
inlineinherited

STL std::string form.

Definition at line 738 of file tinyxml.h.

◆ NoChildren()

bool TiXmlNode::NoChildren ( ) const
inlineinherited

Returns true if this node has no children.

Definition at line 782 of file tinyxml.h.

References TiXmlNode::firstChild.

Referenced by ticpp::Node::NoChildren().

782 { return !firstChild; }
TiXmlNode * firstChild
Definition: tinyxml.h:895
+ Here is the caller graph for this function:

◆ operator=()

void TiXmlDeclaration::operator= ( const TiXmlDeclaration copy)

Definition at line 1248 of file tinyxml.cpp.

References CopyTo().

1248  {
1249  Clear();
1250  copy.CopyTo(this);
1251 }
void CopyTo(TiXmlDeclaration *target) const
Definition: tinyxml.cpp:1293
void Clear()
Delete all the children of this node. Does not affect &#39;this&#39;.
Definition: tinyxml.cpp:139
+ Here is the call graph for this function:

◆ Parent() [1/2]

TiXmlNode* TiXmlNode::Parent ( )
inlineinherited

One step up the DOM.

Definition at line 549 of file tinyxml.h.

References TiXmlNode::parent.

Referenced by ticpp::Node::Parent().

549 { return parent; }
TiXmlNode * parent
Definition: tinyxml.h:892
+ Here is the caller graph for this function:

◆ Parent() [2/2]

const TiXmlNode* TiXmlNode::Parent ( ) const
inlineinherited

Definition at line 550 of file tinyxml.h.

References TiXmlNode::parent.

550 { return parent; }
TiXmlNode * parent
Definition: tinyxml.h:892

◆ Parse()

const char * TiXmlDeclaration::Parse ( const char *  p,
TiXmlParsingData data,
TiXmlEncoding  encoding 
)
virtual

Implements TiXmlBase.

Definition at line 1552 of file tinyxmlparser.cpp.

References TiXmlParsingData::Cursor(), TiXmlBase::IsWhiteSpace(), TiXmlBase::location, TiXmlAttribute::Parse(), TiXmlDocument::SetError(), TiXmlBase::SkipWhiteSpace(), TiXmlParsingData::Stamp(), TiXmlBase::StringEqual(), and TiXmlBase::TIXML_ERROR_PARSING_DECLARATION.

1554  {
1555  p = SkipWhiteSpace(p, _encoding);
1556  // Find the beginning, find the end, and look for
1557  // the stuff in-between.
1558  TiXmlDocument* document = GetDocument();
1559 
1560  if (!p || !*p || !StringEqual(p, "<?xml", true, _encoding)) {
1561  if (document)
1562  document->SetError(TIXML_ERROR_PARSING_DECLARATION, 0, 0, _encoding);
1563 
1564  return 0;
1565  }
1566 
1567  if (data) {
1568  data->Stamp(p, _encoding);
1569  location = data->Cursor();
1570  }
1571 
1572  p += 5;
1573 
1574  version = "";
1575  encoding = "";
1576  standalone = "";
1577 
1578  while (p && *p) {
1579  if (*p == '>') {
1580  ++p;
1581  return p;
1582  }
1583 
1584  p = SkipWhiteSpace(p, _encoding);
1585 
1586  if (StringEqual(p, "version", true, _encoding)) {
1587  TiXmlAttribute attrib;
1588  p = attrib.Parse(p, data, _encoding);
1589  version = attrib.Value();
1590  } else if (StringEqual(p, "encoding", true, _encoding)) {
1591  TiXmlAttribute attrib;
1592  p = attrib.Parse(p, data, _encoding);
1593  encoding = attrib.Value();
1594  } else if (StringEqual(p, "standalone", true, _encoding)) {
1595  TiXmlAttribute attrib;
1596  p = attrib.Parse(p, data, _encoding);
1597  standalone = attrib.Value();
1598  } else {
1599  // Read over whatever it is.
1600  while (p && *p && *p != '>' && !IsWhiteSpace(*p))
1601  ++p;
1602  }
1603  }
1604 
1605  return 0;
1606 }
TIXML_STRING standalone
Definition: tinyxml.h:1531
An attribute is a name-value pair.
Definition: tinyxml.h:915
TIXML_STRING version
Definition: tinyxml.h:1529
virtual const char * Parse(const char *p, TiXmlParsingData *data, TiXmlEncoding encoding)
const TiXmlCursor & Cursor()
static bool IsWhiteSpace(char c)
Definition: tinyxml.h:328
const char * Value() const
Return the value of this attribute.
Definition: tinyxml.h:947
TiXmlCursor location
Definition: tinyxml.h:410
Always the top level node.
Definition: tinyxml.h:1655
static const char * SkipWhiteSpace(const char *, TiXmlEncoding encoding)
const TiXmlDocument * GetDocument() const
Return a pointer to the Document this node lives in.
Definition: tinyxml.cpp:424
static bool StringEqual(const char *p, const char *endTag, bool ignoreCase, TiXmlEncoding encoding)
void SetError(int err, const char *errorLocation, TiXmlParsingData *prevData, TiXmlEncoding encoding)
void Stamp(const char *now, TiXmlEncoding encoding)
TIXML_STRING encoding
Definition: tinyxml.h:1530
+ Here is the call graph for this function:

◆ PreviousSibling() [1/6]

const TiXmlNode* TiXmlNode::PreviousSibling ( ) const
inlineinherited

Navigate to a sibling node.

Definition at line 678 of file tinyxml.h.

References TiXmlNode::prev.

678 { return prev; }
TiXmlNode * prev
Definition: tinyxml.h:900

◆ PreviousSibling() [2/6]

TiXmlNode* TiXmlNode::PreviousSibling ( )
inlineinherited

Definition at line 679 of file tinyxml.h.

References TiXmlNode::prev.

Referenced by ticpp::Node::PreviousSibling().

679 { return prev; }
TiXmlNode * prev
Definition: tinyxml.h:900
+ Here is the caller graph for this function:

◆ PreviousSibling() [3/6]

const TiXmlNode * TiXmlNode::PreviousSibling ( const char *  _value) const
inherited

Navigate to a sibling node.

Definition at line 360 of file tinyxml.cpp.

References TiXmlNode::prev, and TiXmlNode::Value().

Referenced by TiXmlNode::PreviousSibling().

360  {
361  const TiXmlNode* node;
362 
363  for (node = prev; node; node = node->prev) {
364  if (strcmp(node->Value(), _value) == 0) return node;
365  }
366 
367  return 0;
368 }
TiXmlNode * prev
Definition: tinyxml.h:900
const char * Value() const
The meaning of &#39;value&#39; changes for the specific type of TiXmlNode.
Definition: tinyxml.h:517
The parent class for everything in the Document Object Model.
Definition: tinyxml.h:454
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ PreviousSibling() [4/6]

TiXmlNode* TiXmlNode::PreviousSibling ( const char *  _prev)
inlineinherited

Definition at line 683 of file tinyxml.h.

References TiXmlNode::PreviousSibling().

Referenced by ticpp::Node::PreviousSibling().

683  {
684  return const_cast< TiXmlNode* >(
685  (const_cast< const TiXmlNode* >(this))->PreviousSibling(_prev));
686  }
The parent class for everything in the Document Object Model.
Definition: tinyxml.h:454
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ PreviousSibling() [5/6]

const TiXmlNode* TiXmlNode::PreviousSibling ( const std::string &  _value) const
inlineinherited

STL std::string form.

Definition at line 689 of file tinyxml.h.

◆ PreviousSibling() [6/6]

TiXmlNode* TiXmlNode::PreviousSibling ( const std::string &  _value)
inlineinherited

STL std::string form.

Definition at line 692 of file tinyxml.h.

◆ Print() [1/2]

void TiXmlDeclaration::Print ( FILE *  cfile,
int  depth,
TIXML_STRING str 
) const
virtual

Definition at line 1253 of file tinyxml.cpp.

Referenced by Print().

1253  {
1254  if (cfile) fprintf(cfile, "<?xml ");
1255 
1256  if (str) (*str) += "<?xml ";
1257 
1258  if (!version.empty()) {
1259  if (cfile) fprintf(cfile, "version=\"%s\" ", version.c_str());
1260 
1261  if (str) {
1262  (*str) += "version=\"";
1263  (*str) += version;
1264  (*str) += "\" ";
1265  }
1266  }
1267 
1268  if (!encoding.empty()) {
1269  if (cfile) fprintf(cfile, "encoding=\"%s\" ", encoding.c_str());
1270 
1271  if (str) {
1272  (*str) += "encoding=\"";
1273  (*str) += encoding;
1274  (*str) += "\" ";
1275  }
1276  }
1277 
1278  if (!standalone.empty()) {
1279  if (cfile) fprintf(cfile, "standalone=\"%s\" ", standalone.c_str());
1280 
1281  if (str) {
1282  (*str) += "standalone=\"";
1283  (*str) += standalone;
1284  (*str) += "\" ";
1285  }
1286  }
1287 
1288  if (cfile) fprintf(cfile, "?>");
1289 
1290  if (str) (*str) += "?>";
1291 }
TIXML_STRING standalone
Definition: tinyxml.h:1531
TIXML_STRING version
Definition: tinyxml.h:1529
TIXML_STRING encoding
Definition: tinyxml.h:1530
+ Here is the caller graph for this function:

◆ Print() [2/2]

virtual void TiXmlDeclaration::Print ( FILE *  cfile,
int  depth 
) const
inlinevirtual

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 1503 of file tinyxml.h.

References Print().

1503 { Print(cfile, depth, 0); }
virtual void Print(FILE *cfile, int depth, TIXML_STRING *str) const
Definition: tinyxml.cpp:1253
+ Here is the call graph for this function:

◆ ReadName()

const char * TiXmlBase::ReadName ( const char *  p,
TIXML_STRING name,
TiXmlEncoding  encoding 
)
staticprotectedinherited

Definition at line 409 of file tinyxmlparser.cpp.

References TiXmlBase::IsAlpha(), and TiXmlBase::IsAlphaNum().

409  {
410  // Oddly, not supported on some comilers,
411  // name->clear();
412  // So use this:
413  *name = "";
414  assert(p);
415 
416  // Names start with letters or underscores.
417  // Of course, in unicode, tinyxml has no idea what a letter *is*. The
418  // algorithm is generous.
419  //
420  // After that, they can be letters, underscores, numbers,
421  // hyphens, or colons. (Colons are valid ony for namespaces,
422  // but tinyxml can't tell namespaces from names.)
423  if (p && *p && (IsAlpha((unsigned char)*p, encoding) || *p == '_')) {
424  const char* start = p;
425 
426  while (p && *p && (IsAlphaNum((unsigned char)*p, encoding) || *p == '_' ||
427  *p == '-' || *p == '.' || *p == ':')) {
428  //(*name) += *p; // expensive
429  ++p;
430  }
431 
432  if (p - start > 0) {
433  name->assign(start, p - start);
434  }
435 
436  return p;
437  }
438 
439  return 0;
440 }
static int IsAlphaNum(unsigned char anyByte, TiXmlEncoding encoding)
static int IsAlpha(unsigned char anyByte, TiXmlEncoding encoding)
+ Here is the call graph for this function:

◆ ReadText()

const char * TiXmlBase::ReadText ( const char *  in,
TIXML_STRING text,
bool  ignoreWhiteSpace,
const char *  endTag,
bool  ignoreCase,
TiXmlEncoding  encoding 
)
staticprotectedinherited

Definition at line 566 of file tinyxmlparser.cpp.

References TiXmlBase::condenseWhiteSpace, TiXmlBase::GetChar(), TiXmlBase::IsWhiteSpace(), TiXmlBase::SkipWhiteSpace(), and TiXmlBase::StringEqual().

571  {
572  *text = "";
573 
574  if (!trimWhiteSpace // certain tags always keep whitespace
575  ||
576  !condenseWhiteSpace) { // if true, whitespace is always kept
577  // Keep all the white space.
578  while (p && *p && !StringEqual(p, endTag, caseInsensitive, encoding)) {
579  int len;
580  char cArr[4] = {0, 0, 0, 0};
581  p = GetChar(p, cArr, &len, encoding);
582  text->append(cArr, len);
583  }
584  } else {
585  bool whitespace = false;
586 
587  // Remove leading white space:
588  p = SkipWhiteSpace(p, encoding);
589 
590  while (p && *p && !StringEqual(p, endTag, caseInsensitive, encoding)) {
591  if (*p == '\r' || *p == '\n') {
592  whitespace = true;
593  ++p;
594  } else if (IsWhiteSpace(*p)) {
595  whitespace = true;
596  ++p;
597  } else {
598  // If we've found whitespace, add it before the
599  // new character. Any whitespace just becomes a space.
600  if (whitespace) {
601  (*text) += ' ';
602  whitespace = false;
603  }
604 
605  int len;
606  char cArr[4] = {0, 0, 0, 0};
607  p = GetChar(p, cArr, &len, encoding);
608 
609  if (len == 1)
610  (*text) += cArr[0]; // more efficient
611  else
612  text->append(cArr, len);
613  }
614  }
615  }
616 
617  if (p) p += strlen(endTag);
618 
619  return p;
620 }
static bool condenseWhiteSpace
Definition: tinyxml.h:445
static bool IsWhiteSpace(char c)
Definition: tinyxml.h:328
static const char * SkipWhiteSpace(const char *, TiXmlEncoding encoding)
static bool StringEqual(const char *p, const char *endTag, bool ignoreCase, TiXmlEncoding encoding)
static const char * GetChar(const char *p, char *_value, int *length, TiXmlEncoding encoding)
Definition: tinyxml.h:368
+ Here is the call graph for this function:

◆ RemoveChild()

bool TiXmlNode::RemoveChild ( TiXmlNode removeThis)
inherited

Delete a child of this node.

Definition at line 291 of file tinyxml.cpp.

References TiXmlNode::firstChild, TiXmlNode::lastChild, TiXmlNode::next, TiXmlNode::parent, and TiXmlNode::prev.

Referenced by ticpp::Node::RemoveChild().

291  {
292  if (removeThis->parent != this) {
293  assert(0);
294  return false;
295  }
296 
297  if (removeThis->next)
298  removeThis->next->prev = removeThis->prev;
299  else
300  lastChild = removeThis->prev;
301 
302  if (removeThis->prev)
303  removeThis->prev->next = removeThis->next;
304  else
305  firstChild = removeThis->next;
306 
307  delete removeThis;
308  return true;
309 }
TiXmlNode * prev
Definition: tinyxml.h:900
TiXmlNode * firstChild
Definition: tinyxml.h:895
TiXmlNode * parent
Definition: tinyxml.h:892
TiXmlNode * next
Definition: tinyxml.h:901
TiXmlNode * lastChild
Definition: tinyxml.h:896
+ Here is the caller graph for this function:

◆ ReplaceChild()

TiXmlNode * TiXmlNode::ReplaceChild ( TiXmlNode replaceThis,
const TiXmlNode withThis 
)
inherited

Replace a child of this node.

Returns a pointer to the new object or nullptr if an error occured.

Definition at line 265 of file tinyxml.cpp.

References TiXmlNode::Clone(), TiXmlNode::firstChild, TiXmlNode::lastChild, TiXmlNode::next, TiXmlNode::parent, and TiXmlNode::prev.

Referenced by ticpp::Node::ReplaceChild().

266  {
267  if (replaceThis->parent != this) return 0;
268 
269  TiXmlNode* node = withThis.Clone();
270 
271  if (!node) return 0;
272 
273  node->next = replaceThis->next;
274  node->prev = replaceThis->prev;
275 
276  if (replaceThis->next)
277  replaceThis->next->prev = node;
278  else
279  lastChild = node;
280 
281  if (replaceThis->prev)
282  replaceThis->prev->next = node;
283  else
284  firstChild = node;
285 
286  delete replaceThis;
287  node->parent = this;
288  return node;
289 }
TiXmlNode * prev
Definition: tinyxml.h:900
TiXmlNode * firstChild
Definition: tinyxml.h:895
TiXmlNode * parent
Definition: tinyxml.h:892
The parent class for everything in the Document Object Model.
Definition: tinyxml.h:454
TiXmlNode * next
Definition: tinyxml.h:901
TiXmlNode * lastChild
Definition: tinyxml.h:896
virtual TiXmlNode * Clone() const =0
Create an exact duplicate of this node and return it.
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ Row()

int TiXmlBase::Row ( ) const
inlineinherited

Return the position, in the original source file, of this node or attribute.

The row and column are 1-based. (That is the first row and first column is 1,1). If the returns values are 0 or less, then the parser does not have a row and column value.

Generally, the row and column value will be set when the TiXmlDocument::Load(), TiXmlDocument::LoadFile(), or any TiXmlNode::Parse() is called. It will NOT be set when the DOM was created from operator>>.

The values reflect the initial load. Once the DOM is modified programmatically (by adding or changing nodes and attributes) the new values will NOT update to reflect changes in the document.

There is a minor performance cost to computing the row and column. Computation can be disabled if TiXmlDocument::SetTabSize() is called with 0 as the value.

See also
TiXmlDocument::SetTabSize()

Definition at line 275 of file tinyxml.h.

References TiXmlBase::location, and TiXmlCursor::row.

Referenced by ticpp::Base::Row().

275 { return location.row + 1; }
TiXmlCursor location
Definition: tinyxml.h:410
+ Here is the caller graph for this function:

◆ SetCondenseWhiteSpace()

static void TiXmlBase::SetCondenseWhiteSpace ( bool  condense)
inlinestaticinherited

The world does not agree on whether white space should be kept or not.

In order to make everyone happy, these global, static functions are provided to set whether or not TinyXml will condense all white space into a single space or not. The default is to condense. Note changing this value is not thread safe.

Definition at line 242 of file tinyxml.h.

References TiXmlBase::condenseWhiteSpace.

242  {
243  condenseWhiteSpace = condense;
244  }
static bool condenseWhiteSpace
Definition: tinyxml.h:445

◆ SetUserData()

void TiXmlBase::SetUserData ( void *  user)
inlineinherited

Set a pointer to arbitrary user data.

Definition at line 278 of file tinyxml.h.

References TiXmlBase::userData.

◆ SetValue() [1/2]

void TiXmlNode::SetValue ( const char *  _value)
inlineinherited

Changes the value of the node.

Defined as:

Document: filename of the xml file
Element:  name of the element
Comment:  the comment text
Unknown:  the tag contents
Text:   the text string

Definition at line 538 of file tinyxml.h.

538 { value = _value; }
TIXML_STRING value
Definition: tinyxml.h:898

◆ SetValue() [2/2]

void TiXmlNode::SetValue ( const std::string &  _value)
inlineinherited

STL std::string form.

Definition at line 542 of file tinyxml.h.

References TiXmlNode::value.

542 { value = _value; }
TIXML_STRING value
Definition: tinyxml.h:898

◆ SkipWhiteSpace()

const char * TiXmlBase::SkipWhiteSpace ( const char *  p,
TiXmlEncoding  encoding 
)
staticprotectedinherited

Definition at line 333 of file tinyxmlparser.cpp.

References TiXmlBase::IsWhiteSpace(), TIXML_ENCODING_UTF8, TIXML_UTF_LEAD_0, TIXML_UTF_LEAD_1, and TIXML_UTF_LEAD_2.

Referenced by TiXmlNode::Identify(), TiXmlAttribute::Parse(), TiXmlElement::Parse(), TiXmlComment::Parse(), Parse(), TiXmlStylesheetReference::Parse(), TiXmlUnknown::Parse(), TiXmlDocument::Parse(), TiXmlBase::ReadText(), and TiXmlElement::ReadValue().

333  {
334  if (!p || !*p) {
335  return 0;
336  }
337 
338  if (encoding == TIXML_ENCODING_UTF8) {
339  while (*p) {
340  const unsigned char* pU = (const unsigned char*)p;
341 
342  // Skip the stupid Microsoft UTF-8 Byte order marks
343  if (*(pU + 0) == TIXML_UTF_LEAD_0 && *(pU + 1) == TIXML_UTF_LEAD_1 &&
344  *(pU + 2) == TIXML_UTF_LEAD_2) {
345  p += 3;
346  continue;
347  } else if (*(pU + 0) == TIXML_UTF_LEAD_0 && *(pU + 1) == 0xbfU &&
348  *(pU + 2) == 0xbeU) {
349  p += 3;
350  continue;
351  } else if (*(pU + 0) == TIXML_UTF_LEAD_0 && *(pU + 1) == 0xbfU &&
352  *(pU + 2) == 0xbfU) {
353  p += 3;
354  continue;
355  }
356 
357  if (IsWhiteSpace(*p) || *p == '\n' ||
358  *p == '\r') // Still using old rules for white space.
359  ++p;
360  else
361  break;
362  }
363  } else {
364  while ((*p && IsWhiteSpace(*p)) || *p == '\n' || *p == '\r')
365  ++p;
366  }
367 
368  return p;
369 }
const unsigned char TIXML_UTF_LEAD_2
static bool IsWhiteSpace(char c)
Definition: tinyxml.h:328
const unsigned char TIXML_UTF_LEAD_1
const unsigned char TIXML_UTF_LEAD_0
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ Standalone()

const char* TiXmlDeclaration::Standalone ( ) const
inline

Is this a standalone document?

Definition at line 1497 of file tinyxml.h.

1497 { return standalone.c_str(); }
TIXML_STRING standalone
Definition: tinyxml.h:1531

◆ StreamIn()

void TiXmlDeclaration::StreamIn ( std::istream *  in,
TIXML_STRING tag 
)
protectedvirtual

Implements TiXmlNode.

Definition at line 1528 of file tinyxmlparser.cpp.

1528  {
1529  while (in->good()) {
1530  int c = in->get();
1531 
1532  if (c <= 0) {
1533  TiXmlDocument* document = GetDocument();
1534 
1535  if (document)
1536  document->SetError(
1538 
1539  return;
1540  }
1541 
1542  (*tag) += (char)c;
1543 
1544  if (c == '>') {
1545  // All is well.
1546  return;
1547  }
1548  }
1549 }
Always the top level node.
Definition: tinyxml.h:1655
const TiXmlDocument * GetDocument() const
Return a pointer to the Document this node lives in.
Definition: tinyxml.cpp:424
void SetError(int err, const char *errorLocation, TiXmlParsingData *prevData, TiXmlEncoding encoding)

◆ StreamTo()

bool TiXmlBase::StreamTo ( std::istream *  in,
int  character,
TIXML_STRING tag 
)
staticprotectedinherited

Definition at line 386 of file tinyxmlparser.cpp.

386  {
387  // assert( character > 0 && character < 128 ); // else it won't work in utf-8
388  while (in->good()) {
389  int c = in->peek();
390 
391  if (c == character) return true;
392 
393  if (c <= 0) // Silent failure: can't get document at this scope
394  return false;
395 
396  in->get();
397  *tag += (char)c;
398  }
399 
400  return false;
401 }

◆ StreamWhiteSpace()

bool TiXmlBase::StreamWhiteSpace ( std::istream *  in,
TIXML_STRING tag 
)
staticprotectedinherited

Definition at line 372 of file tinyxmlparser.cpp.

References TiXmlBase::IsWhiteSpace().

372  {
373  for (;;) {
374  if (!in->good()) return false;
375 
376  int c = in->peek();
377 
378  // At this scope, we can't get to a document. So fail silently.
379  if (!IsWhiteSpace(c) || c <= 0) return true;
380 
381  *tag += (char)in->get();
382  }
383 }
static bool IsWhiteSpace(char c)
Definition: tinyxml.h:328
+ Here is the call graph for this function:

◆ StringEqual()

bool TiXmlBase::StringEqual ( const char *  p,
const char *  endTag,
bool  ignoreCase,
TiXmlEncoding  encoding 
)
staticprotectedinherited

Definition at line 532 of file tinyxmlparser.cpp.

References TiXmlBase::ToLower().

Referenced by TiXmlNode::Identify(), TiXmlComment::Parse(), TiXmlText::Parse(), Parse(), TiXmlStylesheetReference::Parse(), TiXmlDocument::Parse(), TiXmlBase::ReadText(), and TiXmlElement::ReadValue().

535  {
536  assert(p);
537  assert(tag);
538 
539  if (!p || !*p) {
540  assert(0);
541  return false;
542  }
543 
544  const char* q = p;
545 
546  if (ignoreCase) {
547  while (*q && *tag && ToLower(*q, encoding) == ToLower(*tag, encoding)) {
548  ++q;
549  ++tag;
550  }
551 
552  if (*tag == 0) return true;
553  } else {
554  while (*q && *tag && *q == *tag) {
555  ++q;
556  ++tag;
557  }
558 
559  if (*tag == 0) // Have we found the end of the tag, and everything equal?
560  return true;
561  }
562 
563  return false;
564 }
static int ToLower(int v, TiXmlEncoding encoding)
Definition: tinyxml.h:419
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ ToComment() [1/2]

virtual const TiXmlComment* TiXmlNode::ToComment ( ) const
inlinevirtualinherited

Cast to a more defined type. Will return null if not of the requested type.

Reimplemented in TiXmlComment.

Definition at line 792 of file tinyxml.h.

◆ ToComment() [2/2]

virtual TiXmlComment* TiXmlNode::ToComment ( )
inlinevirtualinherited

Cast to a more defined type. Will return null if not of the requested type.

Reimplemented in TiXmlComment.

Definition at line 821 of file tinyxml.h.

Referenced by ticpp::Node::ToComment().

+ Here is the caller graph for this function:

◆ ToDeclaration() [1/2]

virtual const TiXmlDeclaration* TiXmlDeclaration::ToDeclaration ( ) const
inlinevirtual

Cast to a more defined type. Will return null not of the requested type.

Reimplemented from TiXmlNode.

Definition at line 1508 of file tinyxml.h.

◆ ToDeclaration() [2/2]

virtual TiXmlDeclaration* TiXmlDeclaration::ToDeclaration ( )
inlinevirtual

Cast to a more defined type. Will return null not of the requested type.

Reimplemented from TiXmlNode.

Definition at line 1512 of file tinyxml.h.

◆ ToDocument() [1/2]

virtual const TiXmlDocument* TiXmlNode::ToDocument ( ) const
inlinevirtualinherited

Cast to a more defined type. Will return null if not of the requested type.

Reimplemented in TiXmlDocument.

Definition at line 784 of file tinyxml.h.

◆ ToDocument() [2/2]

virtual TiXmlDocument* TiXmlNode::ToDocument ( )
inlinevirtualinherited

Cast to a more defined type. Will return null if not of the requested type.

Reimplemented in TiXmlDocument.

Definition at line 813 of file tinyxml.h.

◆ ToElement() [1/2]

virtual const TiXmlElement* TiXmlNode::ToElement ( ) const
inlinevirtualinherited

Cast to a more defined type. Will return null if not of the requested type.

Reimplemented in TiXmlElement.

Definition at line 788 of file tinyxml.h.

Referenced by TiXmlNode::FirstChildElement(), and TiXmlNode::NextSiblingElement().

+ Here is the caller graph for this function:

◆ ToElement() [2/2]

virtual TiXmlElement* TiXmlNode::ToElement ( )
inlinevirtualinherited

Cast to a more defined type. Will return null if not of the requested type.

Reimplemented in TiXmlElement.

Definition at line 817 of file tinyxml.h.

Referenced by ticpp::Node::ToElement(), and TiXmlHandle::ToElement().

+ Here is the caller graph for this function:

◆ ToLower()

static int TiXmlBase::ToLower ( int  v,
TiXmlEncoding  encoding 
)
inlinestaticprotectedinherited

Definition at line 419 of file tinyxml.h.

References TIXML_ENCODING_UTF8.

Referenced by TiXmlBase::StringEqual().

419  {
420  if (encoding == TIXML_ENCODING_UTF8) {
421  if (v < 128) return std::tolower(v);
422 
423  return v;
424  } else {
425  return std::tolower(v);
426  }
427  }
+ Here is the caller graph for this function:

◆ ToStylesheetReference() [1/2]

virtual const TiXmlStylesheetReference* TiXmlNode::ToStylesheetReference ( ) const
inlinevirtualinherited

Cast to a more defined type. Will return null if not of the requested type.

Reimplemented in TiXmlStylesheetReference.

Definition at line 808 of file tinyxml.h.

◆ ToStylesheetReference() [2/2]

virtual TiXmlStylesheetReference* TiXmlNode::ToStylesheetReference ( )
inlinevirtualinherited

Cast to a more defined type. Will return null if not of the requested type.

Reimplemented in TiXmlStylesheetReference.

Definition at line 837 of file tinyxml.h.

Referenced by ticpp::Node::ToStylesheetReference().

+ Here is the caller graph for this function:

◆ ToText() [1/2]

virtual const TiXmlText* TiXmlNode::ToText ( ) const
inlinevirtualinherited

Cast to a more defined type. Will return null if not of the requested type.

Reimplemented in TiXmlText.

Definition at line 800 of file tinyxml.h.

Referenced by TiXmlElement::GetText().

+ Here is the caller graph for this function:

◆ ToText() [2/2]

virtual TiXmlText* TiXmlNode::ToText ( )
inlinevirtualinherited

Cast to a more defined type. Will return null if not of the requested type.

Reimplemented in TiXmlText.

Definition at line 829 of file tinyxml.h.

Referenced by TiXmlElement::Print(), ticpp::Node::ToText(), and TiXmlHandle::ToText().

+ Here is the caller graph for this function:

◆ ToUnknown() [1/2]

virtual const TiXmlUnknown* TiXmlNode::ToUnknown ( ) const
inlinevirtualinherited

Cast to a more defined type. Will return null if not of the requested type.

Reimplemented in TiXmlUnknown.

Definition at line 796 of file tinyxml.h.

◆ ToUnknown() [2/2]

virtual TiXmlUnknown* TiXmlNode::ToUnknown ( )
inlinevirtualinherited

Cast to a more defined type. Will return null if not of the requested type.

Reimplemented in TiXmlUnknown.

Definition at line 825 of file tinyxml.h.

Referenced by TiXmlHandle::ToUnknown().

+ Here is the caller graph for this function:

◆ Type()

int TiXmlNode::Type ( ) const
inlineinherited

Query the type (as an enumerated value, above) of this node.

The possible types are: DOCUMENT, ELEMENT, COMMENT, UNKNOWN, TEXT, and DECLARATION.

Definition at line 770 of file tinyxml.h.

References TiXmlNode::type.

Referenced by TiXmlNode::InsertAfterChild(), TiXmlNode::InsertBeforeChild(), TiXmlNode::InsertEndChild(), TiXmlNode::LinkEndChild(), ticpp::Node::NodeFactory(), and ticpp::Node::Type().

770 { return type; }
NodeType type
Definition: tinyxml.h:893
+ Here is the caller graph for this function:

◆ Value()

const char* TiXmlNode::Value ( ) const
inlineinherited

The meaning of 'value' changes for the specific type of TiXmlNode.

Document: filename of the xml file
Element:  name of the element
Comment:  the comment text
Unknown:  the tag contents
Text:   the text string

The subclasses will wrap this function.

Definition at line 517 of file tinyxml.h.

Referenced by TiXmlNode::FirstChild(), TiXmlNode::LastChild(), TiXmlNode::NextSibling(), and TiXmlNode::PreviousSibling().

517 { return value.c_str(); }
TIXML_STRING value
Definition: tinyxml.h:898
+ Here is the caller graph for this function:

◆ ValueStr()

const std::string& TiXmlNode::ValueStr ( ) const
inlineinherited

Return Value() as a std::string.

If you only use STL, this is more efficient than calling Value(). Only available in STL mode.

Definition at line 524 of file tinyxml.h.

References TiXmlNode::value.

Referenced by ticpp::Node::Value().

524 { return value; }
TIXML_STRING value
Definition: tinyxml.h:898
+ Here is the caller graph for this function:

◆ ValueTStr()

const TIXML_STRING& TiXmlNode::ValueTStr ( ) const
inlineinherited

Definition at line 527 of file tinyxml.h.

References TiXmlNode::value.

527 { return value; }
TIXML_STRING value
Definition: tinyxml.h:898

◆ Version()

const char* TiXmlDeclaration::Version ( ) const
inline

Version. Will return an empty string if none was found.

Definition at line 1493 of file tinyxml.h.

1493 { return version.c_str(); }
TIXML_STRING version
Definition: tinyxml.h:1529

Member Data Documentation

◆ encoding

TIXML_STRING TiXmlDeclaration::encoding
private

Definition at line 1530 of file tinyxml.h.

◆ errorString

const char * TiXmlBase::errorString
staticprotectedinherited
Initial value:
= {
"No error",
"Error",
"Failed to open file",
"Memory allocation failed.",
"Error parsing Element.",
"Failed to read Element name",
"Error reading Element value.",
"Error reading Attributes.",
"Error: empty tag.",
"Error reading end tag.",
"Error parsing Unknown.",
"Error parsing Comment.",
"Error parsing Declaration.",
"Error document empty.",
"Error null (0) or unexpected EOF found in input stream.",
"Error parsing CDATA.",
"Error when TiXmlDocument added to document, because "
"TiXmlDocument can only be at the root.",
}

Definition at line 408 of file tinyxml.h.

◆ firstChild

◆ lastChild

◆ location

◆ m_spawnedWrappers

std::vector< ticpp::Base* > TiCppRC::m_spawnedWrappers
inherited

Remember all wrappers that we've created with 'new' - ( e.g.

NodeFactory, FirstChildElement, etc. )

Definition at line 63 of file ticpprc.h.

◆ next

◆ parent

◆ prev

◆ standalone

TIXML_STRING TiXmlDeclaration::standalone
private

Definition at line 1531 of file tinyxml.h.

◆ type

NodeType TiXmlNode::type
protectedinherited

Definition at line 893 of file tinyxml.h.

Referenced by TiXmlNode::TiXmlNode(), and TiXmlNode::Type().

◆ userData

void* TiXmlBase::userData
protectedinherited

Field containing a generic user pointer.

Definition at line 413 of file tinyxml.h.

Referenced by TiXmlNode::CopyTo(), TiXmlBase::GetUserData(), TiXmlBase::SetUserData(), and TiXmlBase::TiXmlBase().

◆ utf8ByteTable

const int TiXmlBase::utf8ByteTable
staticinherited

Definition at line 290 of file tinyxml.h.

Referenced by TiXmlBase::GetChar(), and TiXmlParsingData::Stamp().

◆ value

TIXML_STRING TiXmlNode::value
protectedinherited

Definition at line 898 of file tinyxml.h.

Referenced by TiXmlNode::SetValue(), TiXmlNode::ValueStr(), and TiXmlNode::ValueTStr().

◆ version

TIXML_STRING TiXmlDeclaration::version
private

Definition at line 1529 of file tinyxml.h.


The documentation for this class was generated from the following files: