libxml++: xmlpp::Node Class Reference
Represents XML Nodes. More...
#include <libxml++/nodes/node.h>


Public Types | |
| typedef std::list< Node* > | NodeList |
| typedef std::map < Glib::ustring, Glib::ustring > | PrefixNsMap |
| A map of namespace prefixes to namespace URIs. | |
Public Member Functions | |
| Node (_xmlNode* node) | |
| virtual | ~Node () |
| Glib::ustring | get_name () const |
| Get the name of this node. | |
| void | set_name (const Glib::ustring& name) |
| Set the name of this node. | |
| void | set_namespace (const Glib::ustring& ns_prefix) |
| Set the namespace prefix used by the node. | |
| Glib::ustring | get_namespace_prefix () const |
| Get the namespace prefix of this node. | |
| Glib::ustring | get_namespace_uri () const |
| Get the namespace URI of this node. | |
| int | get_line () const |
| Discover at what line number this node occurs in the XML file. | |
| const Element* | get_parent () const |
| Get the parent element for this node. | |
| Element* | get_parent () |
| Get the parent element for this node. | |
| const Node* | get_next_sibling () const |
| Get the next sibling for this node. | |
| Node* | get_next_sibling () |
| Get the next sibling for this node. | |
| const Node* | get_previous_sibling () const |
| Get the previous sibling for this node . | |
| Node* | get_previous_sibling () |
| Get the previous sibling for this node. | |
| const Node* | get_first_child (const Glib::ustring& name=Glib::ustring()) const |
| Get the first child of this node. | |
| Node* | get_first_child (const Glib::ustring& name=Glib::ustring()) |
| Get the first child of this node. | |
| NodeList | get_children (const Glib::ustring& name=Glib::ustring()) |
| Obtain the list of child nodes. | |
| const NodeList | get_children (const Glib::ustring& name=Glib::ustring()) const |
| Obtain the list of child nodes. | |
| Element* | add_child (const Glib::ustring& name, const Glib::ustring& ns_prefix=Glib::ustring()) |
| Add a child element to this node. | |
| Element* | add_child (xmlpp::Node* previous_sibling, const Glib::ustring& name, const Glib::ustring& ns_prefix=Glib::ustring()) |
| Add a child element to this node after the specified existing child node. | |
| Element* | add_child_before (xmlpp::Node* next_sibling, const Glib::ustring& name, const Glib::ustring& ns_prefix=Glib::ustring()) |
| Add a child element to this node before the specified existing child node. | |
| void | remove_child (Node* node) |
| Remove the child node. | |
| Node* | import_node (const Node* node, bool recursive=true) |
| Import node(s) from another document under this node, without affecting the source node. | |
| Glib::ustring | get_path () const |
| Get the XPath of this node. | |
| NodeSet | find (const Glib::ustring& xpath) const |
| Find nodes from an XPath expression. | |
| NodeSet | find (const Glib::ustring& xpath, const PrefixNsMap& namespaces) const |
| Find nodes from an XPath expression. | |
| bool | eval_to_boolean (const Glib::ustring& xpath, XPathResultType* result_type=0) const |
| Evaluate an XPath expression. | |
| bool | eval_to_boolean (const Glib::ustring& xpath, const PrefixNsMap& namespaces, XPathResultType* result_type=0) const |
| Evaluate an XPath expression. | |
| double | eval_to_number (const Glib::ustring& xpath, XPathResultType* result_type=0) const |
| Evaluate an XPath expression. | |
| double | eval_to_number (const Glib::ustring& xpath, const PrefixNsMap& namespaces, XPathResultType* result_type=0) const |
| Evaluate an XPath expression. | |
| Glib::ustring | eval_to_string (const Glib::ustring& xpath, XPathResultType* result_type=0) const |
| Evaluate an XPath expression. | |
| Glib::ustring | eval_to_string (const Glib::ustring& xpath, const PrefixNsMap& namespaces, XPathResultType* result_type=0) const |
| Evaluate an XPath expression. | |
| _xmlNode* | cobj () |
| Access the underlying libxml implementation. | |
| const _xmlNode* | cobj () const |
| Access the underlying libxml implementation. | |
Static Public Member Functions | |
| static void | create_wrapper (_xmlNode* node) |
| Construct the correct C++ instance for a given libxml C struct instance. | |
| static void | free_wrappers (_xmlNode* node) |
| Delete the C++ instance for a given libxml C struct instance, and also recursively destroy the C++ instances for any children. | |
Protected Member Functions | |
| _xmlNode* | create_new_child_node (const Glib::ustring& name, const Glib::ustring& ns_prefix) |
| Create the C instance ready to be added to the parent node. | |
Protected Member Functions inherited from xmlpp::NonCopyable | |
| NonCopyable () | |
| virtual | ~NonCopyable () |
Detailed Description
Represents XML Nodes.
You should never new or delete Nodes. The Parser will create and manage them for you.
Member Typedef Documentation
| typedef std::list<Node*> xmlpp::Node::NodeList |
| typedef std::map<Glib::ustring, Glib::ustring> xmlpp::Node::PrefixNsMap |
A map of namespace prefixes to namespace URIs.
Constructor & Destructor Documentation
|
explicit |
|
virtual |
Member Function Documentation
| Element* xmlpp::Node::add_child | ( | const Glib::ustring & | name, |
| const Glib::ustring & | ns_prefix = Glib::ustring() |
||
| ) |
Add a child element to this node.
This node must be an element node.
- Parameters
-
name The new node name ns_prefix The namespace prefix. If the prefix has not been declared then this method will throw an exception.
- Returns
- The newly-created element
- Exceptions
-
xmlpp::exception If a namespace prefix is specified, but has not been declared. xmlpp::internal_error If this node is not an element node.
| Element* xmlpp::Node::add_child | ( | xmlpp::Node* | previous_sibling, |
| const Glib::ustring & | name, | ||
| const Glib::ustring & | ns_prefix = Glib::ustring() |
||
| ) |
Add a child element to this node after the specified existing child node.
This node must be an element node.
- Parameters
-
previous_sibling An existing child node. name The new node name ns_prefix The namespace prefix. If the prefix has not been declared then this method will throw an exception.
- Returns
- The newly-created element
- Exceptions
-
xmlpp::exception If a namespace prefix is specified, but has not been declared. xmlpp::internal_error If this node is not an element node.
| Element* xmlpp::Node::add_child_before | ( | xmlpp::Node* | next_sibling, |
| const Glib::ustring & | name, | ||
| const Glib::ustring & | ns_prefix = Glib::ustring() |
||
| ) |
Add a child element to this node before the specified existing child node.
This node must be an element node.
- Parameters
-
next_sibling An existing child node. name The new node name ns_prefix The namespace prefix. If the prefix has not been declared then this method will throw an exception.
- Returns
- The newly-created element
- Exceptions
-
xmlpp::exception If a namespace prefix is specified, but has not been declared. xmlpp::internal_error If this node is not an element node.
| _xmlNode* xmlpp::Node::cobj | ( | ) |
Access the underlying libxml implementation.
Reimplemented in xmlpp::Attribute, xmlpp::EntityDeclaration, and xmlpp::AttributeDeclaration.
| const _xmlNode* xmlpp::Node::cobj | ( | ) | const |
Access the underlying libxml implementation.
Reimplemented in xmlpp::Attribute, xmlpp::EntityDeclaration, and xmlpp::AttributeDeclaration.
|
protected |
Create the C instance ready to be added to the parent node.
|
static |
Construct the correct C++ instance for a given libxml C struct instance.
This is only for use by the libxml++ implementation.
- Parameters
-
node A pointer to an xmlNode or a "derived" struct, such as xmlDoc, xmlAttr, etc.
| bool xmlpp::Node::eval_to_boolean | ( | const Glib::ustring & | xpath, |
| XPathResultType* | result_type = 0 |
||
| ) | const |
Evaluate an XPath expression.
- Parameters
-
xpath The XPath expression. [out] result_type Result type of the XPath expression before conversion to boolean. If 0, the result type is not returned.
- Returns
- The value of the XPath expression. If the value is not of type boolean, it is converted to boolean.
- Exceptions
-
xmlpp::exception If the XPath expression cannot be evaluated. xmlpp::internal_error
| bool xmlpp::Node::eval_to_boolean | ( | const Glib::ustring & | xpath, |
| const PrefixNsMap& | namespaces, | ||
| XPathResultType* | result_type = 0 |
||
| ) | const |
Evaluate an XPath expression.
- Parameters
-
xpath The XPath expression. namespaces A map of namespace prefixes to namespace URIs to be used while evaluating. [out] result_type Result type of the XPath expression before conversion to boolean. If 0, the result type is not returned.
- Returns
- The value of the XPath expression. If the value is not of type boolean, it is converted to boolean.
- Exceptions
-
xmlpp::exception If the XPath expression cannot be evaluated. xmlpp::internal_error
| double xmlpp::Node::eval_to_number | ( | const Glib::ustring & | xpath, |
| XPathResultType* | result_type = 0 |
||
| ) | const |
Evaluate an XPath expression.
- Parameters
-
xpath The XPath expression. [out] result_type Result type of the XPath expression before conversion to number. If 0, the result type is not returned.
- Returns
- The value of the XPath expression. If the value is not of type number, it is converted to number.
- Exceptions
-
xmlpp::exception If the XPath expression cannot be evaluated. xmlpp::internal_error
| double xmlpp::Node::eval_to_number | ( | const Glib::ustring & | xpath, |
| const PrefixNsMap& | namespaces, | ||
| XPathResultType* | result_type = 0 |
||
| ) | const |
Evaluate an XPath expression.
- Parameters
-
xpath The XPath expression. namespaces A map of namespace prefixes to namespace URIs to be used while evaluating. [out] result_type Result type of the XPath expression before conversion to number. If 0, the result type is not returned.
- Returns
- The value of the XPath expression. If the value is not of type number, it is converted to number.
- Exceptions
-
xmlpp::exception If the XPath expression cannot be evaluated. xmlpp::internal_error
| Glib::ustring xmlpp::Node::eval_to_string | ( | const Glib::ustring & | xpath, |
| XPathResultType* | result_type = 0 |
||
| ) | const |
Evaluate an XPath expression.
- Parameters
-
xpath The XPath expression. [out] result_type Result type of the XPath expression before conversion to string. If 0, the result type is not returned.
- Returns
- The value of the XPath expression. If the value is not of type string, it is converted to string.
- Exceptions
-
xmlpp::exception If the XPath expression cannot be evaluated. xmlpp::internal_error
| Glib::ustring xmlpp::Node::eval_to_string | ( | const Glib::ustring & | xpath, |
| const PrefixNsMap& | namespaces, | ||
| XPathResultType* | result_type = 0 |
||
| ) | const |
Evaluate an XPath expression.
- Parameters
-
xpath The XPath expression. namespaces A map of namespace prefixes to namespace URIs to be used while evaluating. [out] result_type Result type of the XPath expression before conversion to string. If 0, the result type is not returned.
- Returns
- The value of the XPath expression. If the value is not of type string, it is converted to string.
- Exceptions
-
xmlpp::exception If the XPath expression cannot be evaluated. xmlpp::internal_error
| NodeSet xmlpp::Node::find | ( | const Glib::ustring & | xpath | ) | const |
Find nodes from an XPath expression.
- Parameters
-
xpath The XPath of the nodes.
- Returns
- The resulting NodeSet.
- Exceptions
-
xmlpp::exception If the XPath expression cannot be evaluated. xmlpp::internal_error If the result type is not nodeset.
| NodeSet xmlpp::Node::find | ( | const Glib::ustring & | xpath, |
| const PrefixNsMap& | namespaces | ||
| ) | const |
Find nodes from an XPath expression.
- Parameters
-
xpath The XPath of the nodes. namespaces A map of namespace prefixes to namespace URIs to be used while finding.
- Returns
- The resulting NodeSet.
- Exceptions
-
xmlpp::exception If the XPath expression cannot be evaluated. xmlpp::internal_error If the result type is not nodeset.
|
static |
Delete the C++ instance for a given libxml C struct instance, and also recursively destroy the C++ instances for any children.
This is only for use by the libxml++ implementation.
- Parameters
-
node A pointer to an xmlNode or a "derived" struct, such as xmlDoc, xmlAttr, etc.
| NodeList xmlpp::Node::get_children | ( | const Glib::ustring & | name = Glib::ustring() | ) |
Obtain the list of child nodes.
You may optionally obtain a list of only the child nodes which have a certain name.
- Parameters
-
name The names of the child nodes to get. If you do not specify a name, then the list will contain all nodes, regardless of their names.
- Returns
- The list of child nodes.
| const NodeList xmlpp::Node::get_children | ( | const Glib::ustring & | name = Glib::ustring() | ) | const |
Obtain the list of child nodes.
You may optionally obtain a list of only the child nodes which have a certain name.
- Parameters
-
name The names of the child nodes to get. If you do not specify a name, then the list will contain all nodes, regardless of their names.
- Returns
- The list of child nodes.
| const Node* xmlpp::Node::get_first_child | ( | const Glib::ustring & | name = Glib::ustring() | ) | const |
Get the first child of this node.
You may optionally get the first child node which has a certain name.
- Parameters
-
name The name of the requested child node, or an empty string.
- Returns
- The first child, or
0if no child node (with the specified name) exists.
| Node* xmlpp::Node::get_first_child | ( | const Glib::ustring & | name = Glib::ustring() | ) |
Get the first child of this node.
You may optionally get the first child node which has a certain name.
- Parameters
-
name The name of the requested child node, or an empty string.
- Returns
- The first child, or
0if no child node (with the specified name) exists.
| int xmlpp::Node::get_line | ( | ) | const |
Discover at what line number this node occurs in the XML file.
- Returns
- The line number.
| Glib::ustring xmlpp::Node::get_name | ( | ) | const |
| Glib::ustring xmlpp::Node::get_namespace_prefix | ( | ) | const |
Get the namespace prefix of this node.
- Returns
- The node's namespace prefix. Can be an empty string.
| Glib::ustring xmlpp::Node::get_namespace_uri | ( | ) | const |
Get the namespace URI of this node.
- Returns
- The node's namespace URI. Can be an empty string.
| const Node* xmlpp::Node::get_next_sibling | ( | ) | const |
Get the next sibling for this node.
- Returns
- The next sibling, or
0if the node has no next sibling.
| Node* xmlpp::Node::get_next_sibling | ( | ) |
Get the next sibling for this node.
- Returns
- The next sibling, or
0if the node has no next sibling.
| const Element* xmlpp::Node::get_parent | ( | ) | const |
Get the parent element for this node.
- Returns
- The parent node, or
0if the node has no parent element.
| Element* xmlpp::Node::get_parent | ( | ) |
Get the parent element for this node.
- Returns
- The parent node, or
0if the node has no parent element.
| Glib::ustring xmlpp::Node::get_path | ( | ) | const |
Get the XPath of this node.
- Returns
- The XPath of the node.
| const Node* xmlpp::Node::get_previous_sibling | ( | ) | const |
Get the previous sibling for this node .
- Returns
- The previous sibling, or
0if the node has no previous sibling.
| Node* xmlpp::Node::get_previous_sibling | ( | ) |
Get the previous sibling for this node.
- Returns
- The previous sibling, or
0if the node has no previous sibling.
Import node(s) from another document under this node, without affecting the source node.
If the imported node is an attribute node, and this node has an attribute with the same name as the imported attribute, the existing attribute is destroyed before the imported attribute is added. Any pointer to a destroyed attribute node becomes invalid.
- Parameters
-
node The node to copy and insert under the current node. recursive Whether to import the child nodes also. Defaults to true.
- Returns
- Usually the newly created node, but adjacent text nodes are merged, and the old text node with merged contents is returned.
- Exceptions
-
xmlpp::exception
| void xmlpp::Node::remove_child | ( | Node* | node | ) |
Remove the child node.
- Parameters
-
node The child node to remove. This Node will be deleted and therefore unusable after calling this method.
| void xmlpp::Node::set_name | ( | const Glib::ustring & | name | ) |
Set the name of this node.
- Parameters
-
name The new name for the node.
| void xmlpp::Node::set_namespace | ( | const Glib::ustring & | ns_prefix | ) |
Set the namespace prefix used by the node.
If no such namespace prefix has been declared then this method will throw an exception.
- Parameters
-
ns_prefix The namespace prefix.
- Exceptions
-
xmlpp::exception
The documentation for this class was generated from the following file:
- nodes/node.h

Protected Member Functions inherited from