Public Member Functions | Private Attributes
tinyxml2::XMLHandle Class Reference

#include <tinyxml2.h>

List of all members.

Public Member Functions

XMLHandle FirstChild ()
 Get the first child of this handle.
XMLHandle FirstChildElement (const char *name=0)
 Get the first child element of this handle.
XMLHandle LastChild ()
 Get the last child of this handle.
XMLHandle LastChildElement (const char *name=0)
 Get the last child element of this handle.
XMLHandle NextSibling ()
 Get the next sibling of this handle.
XMLHandle NextSiblingElement (const char *name=0)
 Get the next sibling element of this handle.
XMLHandleoperator= (const XMLHandle &ref)
 Assignment.
XMLHandle PreviousSibling ()
 Get the previous sibling of this handle.
XMLHandle PreviousSiblingElement (const char *name=0)
 Get the previous sibling element of this handle.
XMLDeclarationToDeclaration ()
 Safe cast to XMLDeclaration. This can return null.
XMLElementToElement ()
 Safe cast to XMLElement. This can return null.
XMLNodeToNode ()
 Safe cast to XMLNode. This can return null.
XMLTextToText ()
 Safe cast to XMLText. This can return null.
XMLUnknownToUnknown ()
 Safe cast to XMLUnknown. This can return null.
 XMLHandle (XMLNode *node)
 Create a handle from any node (at any depth of the tree.) This can be a null pointer.
 XMLHandle (XMLNode &node)
 Create a handle from a node.
 XMLHandle (const XMLHandle &ref)
 Copy constructor.

Private Attributes

XMLNode_node

Detailed Description

A XMLHandle is a class that wraps a node pointer with null checks; this is an incredibly useful thing. Note that XMLHandle is not part of the TinyXML-2 DOM structure. It is a separate utility class.

Take an example:

	<Document>
		<Element attributeA = "valueA">
			<Child attributeB = "value1" />
			<Child attributeB = "value2" />
		</Element>
	</Document>
	

Assuming you want the value of "attributeB" in the 2nd "Child" element, it's very easy to write a *lot* of code that looks like:

	XMLElement* root = document.FirstChildElement( "Document" );
	if ( root )
	{
		XMLElement* element = root->FirstChildElement( "Element" );
		if ( element )
		{
			XMLElement* child = element->FirstChildElement( "Child" );
			if ( child )
			{
				XMLElement* child2 = child->NextSiblingElement( "Child" );
				if ( child2 )
				{
					// Finally do something useful.
	

And that doesn't even cover "else" cases. XMLHandle addresses the verbosity of such code. A XMLHandle checks for null pointers so it is perfectly safe and correct to use:

	XMLHandle docHandle( &document );
	XMLElement* child2 = docHandle.FirstChildElement( "Document" ).FirstChildElement( "Element" ).FirstChildElement().NextSiblingElement();
	if ( child2 )
	{
		// do something useful
	

Which is MUCH more concise and useful.

It is also safe to copy handles - internally they are nothing more than node pointers.

	XMLHandle handleCopy = handle;
	

See also XMLConstHandle, which is the same as XMLHandle, but operates on const objects.

Definition at line 1987 of file tinyxml2.h.


Constructor & Destructor Documentation

Create a handle from any node (at any depth of the tree.) This can be a null pointer.

Definition at line 1991 of file tinyxml2.h.

Create a handle from a node.

Definition at line 1994 of file tinyxml2.h.

tinyxml2::XMLHandle::XMLHandle ( const XMLHandle ref) [inline]

Copy constructor.

Definition at line 1997 of file tinyxml2.h.


Member Function Documentation

Get the first child of this handle.

Definition at line 2006 of file tinyxml2.h.

XMLHandle tinyxml2::XMLHandle::FirstChildElement ( const char *  name = 0) [inline]

Get the first child element of this handle.

Definition at line 2010 of file tinyxml2.h.

Get the last child of this handle.

Definition at line 2014 of file tinyxml2.h.

XMLHandle tinyxml2::XMLHandle::LastChildElement ( const char *  name = 0) [inline]

Get the last child element of this handle.

Definition at line 2018 of file tinyxml2.h.

Get the next sibling of this handle.

Definition at line 2030 of file tinyxml2.h.

XMLHandle tinyxml2::XMLHandle::NextSiblingElement ( const char *  name = 0) [inline]

Get the next sibling element of this handle.

Definition at line 2034 of file tinyxml2.h.

XMLHandle& tinyxml2::XMLHandle::operator= ( const XMLHandle ref) [inline]

Assignment.

Definition at line 2000 of file tinyxml2.h.

Get the previous sibling of this handle.

Definition at line 2022 of file tinyxml2.h.

XMLHandle tinyxml2::XMLHandle::PreviousSiblingElement ( const char *  name = 0) [inline]

Get the previous sibling element of this handle.

Definition at line 2026 of file tinyxml2.h.

Safe cast to XMLDeclaration. This can return null.

Definition at line 2055 of file tinyxml2.h.

Safe cast to XMLElement. This can return null.

Definition at line 2043 of file tinyxml2.h.

Safe cast to XMLNode. This can return null.

Definition at line 2039 of file tinyxml2.h.

Safe cast to XMLText. This can return null.

Definition at line 2047 of file tinyxml2.h.

Safe cast to XMLUnknown. This can return null.

Definition at line 2051 of file tinyxml2.h.


Member Data Documentation

Definition at line 2060 of file tinyxml2.h.


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


behaviortree_cpp
Author(s): Michele Colledanchise, Davide Faconti
autogenerated on Sat Feb 2 2019 03:50:11