Public Member Functions | Private Member Functions | Private Attributes
rapidxml::xml_node< Ch > Class Template Reference

#include <rapidxml.hpp>

Inheritance diagram for rapidxml::xml_node< Ch >:
Inheritance graph
[legend]

List of all members.

Public Member Functions

void append_attribute (xml_attribute< Ch > *attribute)
void append_node (xml_node< Ch > *child)
xml_document< Ch > * document () const
xml_attribute< Ch > * first_attribute (const Ch *name=0, std::size_t name_size=0, bool case_sensitive=true) const
xml_node< Ch > * first_node (const Ch *name=0, std::size_t name_size=0, bool case_sensitive=true) const
void insert_attribute (xml_attribute< Ch > *where, xml_attribute< Ch > *attribute)
void insert_node (xml_node< Ch > *where, xml_node< Ch > *child)
xml_attribute< Ch > * last_attribute (const Ch *name=0, std::size_t name_size=0, bool case_sensitive=true) const
xml_node< Ch > * last_node (const Ch *name=0, std::size_t name_size=0, bool case_sensitive=true) const
xml_node< Ch > * next_sibling (const Ch *name=0, std::size_t name_size=0, bool case_sensitive=true) const
void prepend_attribute (xml_attribute< Ch > *attribute)
void prepend_node (xml_node< Ch > *child)
xml_node< Ch > * previous_sibling (const Ch *name=0, std::size_t name_size=0, bool case_sensitive=true) const
void remove_all_attributes ()
 Removes all attributes of node.
void remove_all_nodes ()
 Removes all child nodes (but not attributes).
void remove_attribute (xml_attribute< Ch > *where)
void remove_first_attribute ()
void remove_first_node ()
void remove_last_attribute ()
void remove_last_node ()
void remove_node (xml_node< Ch > *where)
 Removes specified child from the node.
node_type type () const
void type (node_type type)
 xml_node (node_type type)

Private Member Functions

void operator= (const xml_node &)
 xml_node (const xml_node &)

Private Attributes

xml_attribute< Ch > * m_first_attribute
xml_node< Ch > * m_first_node
xml_attribute< Ch > * m_last_attribute
xml_node< Ch > * m_last_node
xml_node< Ch > * m_next_sibling
xml_node< Ch > * m_prev_sibling
node_type m_type

Detailed Description

template<class Ch = char>
class rapidxml::xml_node< Ch >

Class representing a node of XML document. Each node may have associated name and value strings, which are available through name() and value() functions. Interpretation of name and value depends on type of the node. Type of node can be determined by using type() function.

Note that after parse, both name and value of node, if any, will point interior of source text used for parsing. Thus, this text must persist in the memory for the lifetime of node.

Parameters:
ChCharacter type to use.

Definition at line 890 of file rapidxml.hpp.


Constructor & Destructor Documentation

template<class Ch = char>
rapidxml::xml_node< Ch >::xml_node ( node_type  type) [inline]

Constructs an empty node with the specified type. Consider using memory_pool of appropriate document to allocate nodes manually.

Parameters:
typeType of node to construct.

Definition at line 901 of file rapidxml.hpp.

template<class Ch = char>
rapidxml::xml_node< Ch >::xml_node ( const xml_node< Ch > &  ) [private]

Member Function Documentation

template<class Ch = char>
void rapidxml::xml_node< Ch >::append_attribute ( xml_attribute< Ch > *  attribute) [inline]

Appends a new attribute to the node.

Parameters:
attributeAttribute to append.

Definition at line 1217 of file rapidxml.hpp.

template<class Ch = char>
void rapidxml::xml_node< Ch >::append_node ( xml_node< Ch > *  child) [inline]

Appends a new child node. The appended child becomes the last child.

Parameters:
childNode to append.

Definition at line 1097 of file rapidxml.hpp.

template<class Ch = char>
xml_document<Ch>* rapidxml::xml_node< Ch >::document ( ) const [inline]

Gets document of which node is a child.

Returns:
Pointer to document that contains this node, or 0 if there is no parent document.

Definition at line 923 of file rapidxml.hpp.

template<class Ch = char>
xml_attribute<Ch>* rapidxml::xml_node< Ch >::first_attribute ( const Ch *  name = 0,
std::size_t  name_size = 0,
bool  case_sensitive = true 
) const [inline]

Gets first attribute of node, optionally matching attribute name.

Parameters:
nameName of attribute to find, or 0 to return first attribute regardless of its name; this string doesn't have to be zero-terminated if name_size is non-zero
name_sizeSize of name, in characters, or 0 to have size calculated automatically from string
case_sensitiveShould name comparison be case-sensitive; non case-sensitive comparison works properly only for ASCII characters
Returns:
Pointer to found attribute, or 0 if not found.

Definition at line 1025 of file rapidxml.hpp.

template<class Ch = char>
xml_node<Ch>* rapidxml::xml_node< Ch >::first_node ( const Ch *  name = 0,
std::size_t  name_size = 0,
bool  case_sensitive = true 
) const [inline]

Gets first child node, optionally matching node name.

Parameters:
nameName of child to find, or 0 to return first child regardless of its name; this string doesn't have to be zero-terminated if name_size is non-zero
name_sizeSize of name, in characters, or 0 to have size calculated automatically from string
case_sensitiveShould name comparison be case-sensitive; non case-sensitive comparison works properly only for ASCII characters
Returns:
Pointer to found child, or 0 if not found.

Definition at line 936 of file rapidxml.hpp.

template<class Ch = char>
void rapidxml::xml_node< Ch >::insert_attribute ( xml_attribute< Ch > *  where,
xml_attribute< Ch > *  attribute 
) [inline]

Inserts a new attribute at specified place inside the node. All attributes after and including the specified attribute are moved one position back.

Parameters:
wherePlace where to insert the attribute, or 0 to insert at the back.
attributeAttribute to insert.

Definition at line 1239 of file rapidxml.hpp.

template<class Ch = char>
void rapidxml::xml_node< Ch >::insert_node ( xml_node< Ch > *  where,
xml_node< Ch > *  child 
) [inline]

Inserts a new child node at specified place inside the node. All children after and including the specified node are moved one position back.

Parameters:
wherePlace where to insert the child, or 0 to insert at the back.
childNode to insert.

Definition at line 1119 of file rapidxml.hpp.

template<class Ch = char>
xml_attribute<Ch>* rapidxml::xml_node< Ch >::last_attribute ( const Ch *  name = 0,
std::size_t  name_size = 0,
bool  case_sensitive = true 
) const [inline]

Gets last attribute of node, optionally matching attribute name.

Parameters:
nameName of attribute to find, or 0 to return last attribute regardless of its name; this string doesn't have to be zero-terminated if name_size is non-zero
name_sizeSize of name, in characters, or 0 to have size calculated automatically from string
case_sensitiveShould name comparison be case-sensitive; non case-sensitive comparison works properly only for ASCII characters
Returns:
Pointer to found attribute, or 0 if not found.

Definition at line 1045 of file rapidxml.hpp.

template<class Ch = char>
xml_node<Ch>* rapidxml::xml_node< Ch >::last_node ( const Ch *  name = 0,
std::size_t  name_size = 0,
bool  case_sensitive = true 
) const [inline]

Gets last child node, optionally matching node name. Behaviour is undefined if node has no children. Use first_node() to test if node has children.

Parameters:
nameName of child to find, or 0 to return last child regardless of its name; this string doesn't have to be zero-terminated if name_size is non-zero
name_sizeSize of name, in characters, or 0 to have size calculated automatically from string
case_sensitiveShould name comparison be case-sensitive; non case-sensitive comparison works properly only for ASCII characters
Returns:
Pointer to found child, or 0 if not found.

Definition at line 958 of file rapidxml.hpp.

template<class Ch = char>
xml_node<Ch>* rapidxml::xml_node< Ch >::next_sibling ( const Ch *  name = 0,
std::size_t  name_size = 0,
bool  case_sensitive = true 
) const [inline]

Gets next sibling node, optionally matching node name. Behaviour is undefined if node has no parent. Use parent() to test if node has a parent.

Parameters:
nameName of sibling to find, or 0 to return next sibling regardless of its name; this string doesn't have to be zero-terminated if name_size is non-zero
name_sizeSize of name, in characters, or 0 to have size calculated automatically from string
case_sensitiveShould name comparison be case-sensitive; non case-sensitive comparison works properly only for ASCII characters
Returns:
Pointer to found sibling, or 0 if not found.

Definition at line 1004 of file rapidxml.hpp.

template<class Ch = char>
void rapidxml::xml_node< Ch >::operator= ( const xml_node< Ch > &  ) [private]
template<class Ch = char>
void rapidxml::xml_node< Ch >::prepend_attribute ( xml_attribute< Ch > *  attribute) [inline]

Prepends a new attribute to the node.

Parameters:
attributeAttribute to prepend.

Definition at line 1197 of file rapidxml.hpp.

template<class Ch = char>
void rapidxml::xml_node< Ch >::prepend_node ( xml_node< Ch > *  child) [inline]

Prepends a new child node. The prepended child becomes the first child, and all existing children are moved one position back.

Parameters:
childNode to prepend.

Definition at line 1076 of file rapidxml.hpp.

template<class Ch = char>
xml_node<Ch>* rapidxml::xml_node< Ch >::previous_sibling ( const Ch *  name = 0,
std::size_t  name_size = 0,
bool  case_sensitive = true 
) const [inline]

Gets previous sibling node, optionally matching node name. Behaviour is undefined if node has no parent. Use parent() to test if node has a parent.

Parameters:
nameName of sibling to find, or 0 to return previous sibling regardless of its name; this string doesn't have to be zero-terminated if name_size is non-zero
name_sizeSize of name, in characters, or 0 to have size calculated automatically from string
case_sensitiveShould name comparison be case-sensitive; non case-sensitive comparison works properly only for ASCII characters
Returns:
Pointer to found sibling, or 0 if not found.

Definition at line 981 of file rapidxml.hpp.

template<class Ch = char>
void rapidxml::xml_node< Ch >::remove_all_attributes ( ) [inline]

Removes all attributes of node.

Definition at line 1309 of file rapidxml.hpp.

template<class Ch = char>
void rapidxml::xml_node< Ch >::remove_all_nodes ( ) [inline]

Removes all child nodes (but not attributes).

Definition at line 1188 of file rapidxml.hpp.

template<class Ch = char>
void rapidxml::xml_node< Ch >::remove_attribute ( xml_attribute< Ch > *  where) [inline]

Removes specified attribute from node.

Parameters:
wherePointer to attribute to be removed.

Definition at line 1293 of file rapidxml.hpp.

template<class Ch = char>
void rapidxml::xml_node< Ch >::remove_first_attribute ( ) [inline]

Removes first attribute of the node. If node has no attributes, behaviour is undefined. Use first_attribute() to test if node has attributes.

Definition at line 1260 of file rapidxml.hpp.

template<class Ch = char>
void rapidxml::xml_node< Ch >::remove_first_node ( ) [inline]

Removes first child node. If node has no children, behaviour is undefined. Use first_node() to test if node has children.

Definition at line 1140 of file rapidxml.hpp.

template<class Ch = char>
void rapidxml::xml_node< Ch >::remove_last_attribute ( ) [inline]

Removes last attribute of the node. If node has no attributes, behaviour is undefined. Use first_attribute() to test if node has attributes.

Definition at line 1277 of file rapidxml.hpp.

template<class Ch = char>
void rapidxml::xml_node< Ch >::remove_last_node ( ) [inline]

Removes last child of the node. If node has no children, behaviour is undefined. Use first_node() to test if node has children.

Definition at line 1155 of file rapidxml.hpp.

template<class Ch = char>
void rapidxml::xml_node< Ch >::remove_node ( xml_node< Ch > *  where) [inline]

Removes specified child from the node.

Definition at line 1171 of file rapidxml.hpp.

template<class Ch = char>
node_type rapidxml::xml_node< Ch >::type ( ) const [inline]

Gets type of node.

Returns:
Type of node.

Definition at line 913 of file rapidxml.hpp.

template<class Ch = char>
void rapidxml::xml_node< Ch >::type ( node_type  type) [inline]

Sets type of node.

Parameters:
typeType of node to set.

Definition at line 1065 of file rapidxml.hpp.


Member Data Documentation

template<class Ch = char>
xml_attribute<Ch>* rapidxml::xml_node< Ch >::m_first_attribute [private]

Definition at line 1340 of file rapidxml.hpp.

template<class Ch = char>
xml_node<Ch>* rapidxml::xml_node< Ch >::m_first_node [private]

Definition at line 1338 of file rapidxml.hpp.

template<class Ch = char>
xml_attribute<Ch>* rapidxml::xml_node< Ch >::m_last_attribute [private]

Definition at line 1341 of file rapidxml.hpp.

template<class Ch = char>
xml_node<Ch>* rapidxml::xml_node< Ch >::m_last_node [private]

Definition at line 1339 of file rapidxml.hpp.

template<class Ch = char>
xml_node<Ch>* rapidxml::xml_node< Ch >::m_next_sibling [private]

Definition at line 1343 of file rapidxml.hpp.

template<class Ch = char>
xml_node<Ch>* rapidxml::xml_node< Ch >::m_prev_sibling [private]

Definition at line 1342 of file rapidxml.hpp.

template<class Ch = char>
node_type rapidxml::xml_node< Ch >::m_type [private]

Definition at line 1337 of file rapidxml.hpp.


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


asr_rapidxml
Author(s): Aumann Florian
autogenerated on Thu Jun 6 2019 18:55:38