Element in an XML file. More...

#include <Urho3D/Resource/XMLElement.h>

Collaboration diagram for Urho3D::XMLElement:
[legend]

Public Member Functions

 XMLElement ()
 Construct null element.
 
 XMLElement (XMLFile *file, pugi::xml_node_struct *node)
 Construct with document and node pointers.
 
 XMLElement (XMLFile *file, const XPathResultSet *resultSet, const pugi::xpath_node *xpathNode, unsigned xpathResultIndex)
 Construct from xpath query result set.
 
 XMLElement (const XMLElement &rhs)
 Copy-construct from another element.
 
 ~XMLElement ()
 Destruct.
 
XMLElementoperator= (const XMLElement &rhs)
 Assignment operator.
 
XMLElement CreateChild (const String &name)
 Create a child element.
 
XMLElement CreateChild (const char *name)
 Create a child element.
 
XMLElement GetOrCreateChild (const String &name)
 Return the first child element with name or create if does not exist.
 
XMLElement GetOrCreateChild (const char *name)
 Return the first child element with name or create if does not exist.
 
bool RemoveChild (const XMLElement &element)
 Remove a child element. Return true if successful.
 
bool RemoveChild (const String &name)
 Remove a child element by name. Return true if successful.
 
bool RemoveChild (const char *name)
 Remove a child element by name. Return true if successful.
 
bool RemoveChildren (const String &name=String::EMPTY)
 Remove child elements of certain name, or all child elements if name is empty. Return true if successful.
 
bool RemoveChildren (const char *name)
 Remove child elements of certain name, or all child elements if name is empty. Return true if successful.
 
bool RemoveAttribute (const String &name=String::EMPTY)
 Remove an attribute by name. Return true if successful.
 
bool RemoveAttribute (const char *name)
 Remove an attribute by name. Return true if successful.
 
XMLElement SelectSingle (const String &query, pugi::xpath_variable_set *variables=nullptr) const
 Select an element/attribute using XPath query.
 
XMLElement SelectSinglePrepared (const XPathQuery &query) const
 Select an element/attribute using XPath query.
 
XPathResultSet Select (const String &query, pugi::xpath_variable_set *variables=nullptr) const
 Select elements/attributes using XPath query.
 
XPathResultSet SelectPrepared (const XPathQuery &query) const
 Select elements/attributes using XPath query.
 
bool SetValue (const String &value)
 Set the value for an inner node in the following format <node>value</node>.
 
bool SetValue (const char *value)
 Set the value for an inner node in the following format <node>value</node>. Must be used on the <node> element.
 
bool SetAttribute (const String &name, const String &value)
 Set an attribute.
 
bool SetAttribute (const char *name, const char *value)
 Set an attribute.
 
bool SetAttribute (const String &value)
 Set an attribute. Only valid if it is an attribute only XPath query result.
 
bool SetAttribute (const char *value)
 Set an attribute. Only valid if it is an attribute only XPath query result.
 
bool SetBool (const String &name, bool value)
 Set a bool attribute.
 
bool SetBoundingBox (const BoundingBox &value)
 Set a BoundingBox attribute.
 
bool SetBuffer (const String &name, const void *data, unsigned size)
 Set a buffer attribute.
 
bool SetBuffer (const String &name, const PODVector< unsigned char > &value)
 Set a buffer attribute.
 
bool SetColor (const String &name, const Color &value)
 Set a color attribute.
 
bool SetFloat (const String &name, float value)
 Set a float attribute.
 
bool SetDouble (const String &name, double value)
 Set a double attribute.
 
bool SetUInt (const String &name, unsigned value)
 Set an unsigned integer attribute.
 
bool SetInt (const String &name, int value)
 Set an integer attribute.
 
bool SetUInt64 (const String &name, unsigned long long value)
 Set an unsigned long long integer attribute.
 
bool SetInt64 (const String &name, long long value)
 Set a long long integer attribute.
 
bool SetIntRect (const String &name, const IntRect &value)
 Set an IntRect attribute.
 
bool SetIntVector2 (const String &name, const IntVector2 &value)
 Set an IntVector2 attribute.
 
bool SetIntVector3 (const String &name, const IntVector3 &value)
 Set an IntVector3 attribute.
 
bool SetRect (const String &name, const Rect &value)
 Set a Rect attribute.
 
bool SetQuaternion (const String &name, const Quaternion &value)
 Set a quaternion attribute.
 
bool SetString (const String &name, const String &value)
 Set a string attribute.
 
bool SetVariant (const Variant &value)
 Set a variant attribute.
 
bool SetVariantValue (const Variant &value)
 Set a variant attribute excluding the type.
 
bool SetResourceRef (const ResourceRef &value)
 Set a resource reference attribute.
 
bool SetResourceRefList (const ResourceRefList &value)
 Set a resource reference list attribute.
 
bool SetVariantVector (const VariantVector &value)
 Set a variant vector attribute. Creates child elements as necessary.
 
bool SetStringVector (const StringVector &value)
 Set a string vector attribute. Creates child elements as necessary.
 
bool SetVariantMap (const VariantMap &value)
 Set a variant map attribute. Creates child elements as necessary.
 
bool SetVector2 (const String &name, const Vector2 &value)
 Set a Vector2 attribute.
 
bool SetVector3 (const String &name, const Vector3 &value)
 Set a Vector3 attribute.
 
bool SetVector4 (const String &name, const Vector4 &value)
 Set a Vector4 attribute.
 
bool SetVectorVariant (const String &name, const Variant &value)
 Set a float, Vector or Matrix attribute stored in a variant.
 
bool SetMatrix3 (const String &name, const Matrix3 &value)
 Set a Matrix3 attribute.
 
bool SetMatrix3x4 (const String &name, const Matrix3x4 &value)
 Set a Matrix3x4 attribute.
 
bool SetMatrix4 (const String &name, const Matrix4 &value)
 Set a Matrix4 attribute.
 
bool IsNull () const
 Return whether does not refer to an element or an XPath node.
 
bool NotNull () const
 Return whether refers to an element or an XPath node.
 
 operator bool () const
 Return true if refers to an element or an XPath node.
 
String GetName () const
 Return element name (or attribute name if it is an attribute only XPath query result).
 
bool HasChild (const String &name) const
 Return whether has a child element.
 
bool HasChild (const char *name) const
 Return whether has a child element.
 
XMLElement GetChild (const String &name=String::EMPTY) const
 Return child element, or null if missing.
 
XMLElement GetChild (const char *name) const
 Return child element, or null if missing.
 
XMLElement GetNext (const String &name=String::EMPTY) const
 Return next sibling element.
 
XMLElement GetNext (const char *name) const
 Return next sibling element.
 
XMLElement GetParent () const
 Return parent element.
 
unsigned GetNumAttributes () const
 Return number of attributes.
 
bool HasAttribute (const String &name) const
 Return whether has an attribute.
 
bool HasAttribute (const char *name) const
 Return whether has an attribute.
 
String GetValue () const
 Return inner value, or empty if missing for nodes like <node>value</node>
 
String GetAttribute (const String &name=String::EMPTY) const
 Return attribute, or empty if missing.
 
String GetAttribute (const char *name) const
 Return attribute, or empty if missing.
 
const char * GetAttributeCString (const char *name) const
 Return attribute as C string, or null if missing.
 
String GetAttributeLower (const String &name) const
 Return attribute in lowercase, or empty if missing.
 
String GetAttributeLower (const char *name) const
 Return attribute in lowercase, or empty if missing.
 
String GetAttributeUpper (const String &name) const
 Return attribute in lowercase, or empty if missing.
 
String GetAttributeUpper (const char *name) const
 Return attribute in lowercase, or empty if missing.
 
Vector< StringGetAttributeNames () const
 Return names of all attributes.
 
bool GetBool (const String &name) const
 Return bool attribute, or false if missing.
 
PODVector< unsigned char > GetBuffer (const String &name) const
 Return buffer attribute, or empty if missing.
 
bool GetBuffer (const String &name, void *dest, unsigned size) const
 Copy buffer attribute into a supplied buffer. Return true if buffer was large enough.
 
BoundingBox GetBoundingBox () const
 Return bounding box attribute, or empty if missing.
 
Color GetColor (const String &name) const
 Return a color attribute, or default if missing.
 
float GetFloat (const String &name) const
 Return a float attribute, or zero if missing.
 
double GetDouble (const String &name) const
 Return a double attribute, or zero if missing.
 
unsigned GetUInt (const String &name) const
 Return an unsigned integer attribute, or zero if missing.
 
int GetInt (const String &name) const
 Return an integer attribute, or zero if missing.
 
unsigned long long GetUInt64 (const String &name) const
 Return an unsigned long long integer attribute, or zero if missing.
 
long long GetInt64 (const String &name) const
 Return a long long integer attribute, or zero if missing.
 
IntRect GetIntRect (const String &name) const
 Return an IntRect attribute, or default if missing.
 
IntVector2 GetIntVector2 (const String &name) const
 Return an IntVector2 attribute, or default if missing.
 
IntVector3 GetIntVector3 (const String &name) const
 Return an IntVector3 attribute, or default if missing.
 
Rect GetRect (const String &name) const
 Return a Rect attribute, or default if missing.
 
Quaternion GetQuaternion (const String &name) const
 Return a quaternion attribute, or default if missing.
 
Variant GetVariant () const
 Return a variant attribute, or empty if missing.
 
Variant GetVariantValue (VariantType type) const
 Return a variant attribute with static type.
 
ResourceRef GetResourceRef () const
 Return a resource reference attribute, or empty if missing.
 
ResourceRefList GetResourceRefList () const
 Return a resource reference list attribute, or empty if missing.
 
VariantVector GetVariantVector () const
 Return a variant vector attribute, or empty if missing.
 
StringVector GetStringVector () const
 Return a string vector attribute, or empty if missing.
 
VariantMap GetVariantMap () const
 Return a variant map attribute, or empty if missing.
 
Vector2 GetVector2 (const String &name) const
 Return a Vector2 attribute, or zero vector if missing.
 
Vector3 GetVector3 (const String &name) const
 Return a Vector3 attribute, or zero vector if missing.
 
Vector4 GetVector4 (const String &name) const
 Return a Vector4 attribute, or zero vector if missing.
 
Vector4 GetVector (const String &name) const
 Return any Vector attribute as Vector4. Missing coordinates will be zero.
 
Variant GetVectorVariant (const String &name) const
 Return a float, Vector or Matrix attribute as Variant.
 
Matrix3 GetMatrix3 (const String &name) const
 Return a Matrix3 attribute, or zero matrix if missing.
 
Matrix3x4 GetMatrix3x4 (const String &name) const
 Return a Matrix3x4 attribute, or zero matrix if missing.
 
Matrix4 GetMatrix4 (const String &name) const
 Return a Matrix4 attribute, or zero matrix if missing.
 
XMLFileGetFile () const
 Return XML file.
 
pugi::xml_node_struct * GetNode () const
 Return pugixml xml_node_struct.
 
const XPathResultSetGetXPathResultSet () const
 Return XPath query result set.
 
const pugi::xpath_node * GetXPathNode () const
 Return pugixml xpath_node.
 
unsigned GetXPathResultIndex () const
 Return current result index.
 
XMLElement NextResult () const
 Return next XPath query result. Only valid when this instance of XMLElement is itself one of the query result in the result set.
 

Static Public Attributes

static const XMLElement EMPTY
 Empty XMLElement.
 

Private Attributes

WeakPtr< XMLFilefile_
 XML file.
 
pugi::xml_node_struct * node_
 Pugixml node.
 
const XPathResultSetxpathResultSet_
 XPath query result set.
 
const pugi::xpath_node * xpathNode_
 Pugixml xpath_node.
 
unsigned xpathResultIndex_
 Current XPath query result index (used internally to advance to subsequent query result).
 

Detailed Description

Element in an XML file.


The documentation for this class was generated from the following files:
  • Source/Urho3D/Resource/XMLElement.h
  • Source/Urho3D/Resource/XMLElement.cpp