libxml++: xmlpp::Element Class Reference
Element nodes have attributes as well as child nodes. More...
#include <libxml++/nodes/element.h>


Public Types | |
| typedef std::list< Attribute* > | AttributeList |
Public Types inherited from xmlpp::Node | |
| typedef std::list< Node* > | NodeList |
| typedef std::map < Glib::ustring, Glib::ustring > | PrefixNsMap |
| A map of namespace prefixes to namespace URIs. | |
Public Member Functions | |
| Element (_xmlNode* node) | |
| virtual | ~Element () |
| void | set_namespace_declaration (const Glib::ustring& ns_uri, const Glib::ustring& ns_prefix=Glib::ustring()) |
| This adds a namespace declaration to this node which will apply to this node and all children. | |
| AttributeList | get_attributes () |
| Obtain the list of explicitly set attributes for this element. | |
| const AttributeList | get_attributes () const |
| Obtain the list of explicitly set attributes for this element. | |
| Attribute* | get_attribute (const Glib::ustring& name, const Glib::ustring& ns_prefix=Glib::ustring()) const |
| Get the attribute with this name, and optionally with this namespace. | |
| Glib::ustring | get_attribute_value (const Glib::ustring& name, const Glib::ustring& ns_prefix=Glib::ustring()) const |
| Get the value of the attribute with this name, and optionally with this namespace. | |
| Attribute* | set_attribute (const Glib::ustring& name, const Glib::ustring& value, const Glib::ustring& ns_prefix=Glib::ustring()) |
| Set the value of the attribute with this name, and optionally with this namespace. | |
| void | remove_attribute (const Glib::ustring& name, const Glib::ustring& ns_prefix=Glib::ustring()) |
| Remove the attribute with this name, and optionally with this namespace. | |
| TextNode* | get_child_text () |
| Get the first child text content node. | |
| const TextNode* | get_child_text () const |
| Get the first child text content node. | |
| TextNode* | add_child_text (const Glib::ustring& content=Glib::ustring()) |
| Append a new text node. | |
| TextNode* | add_child_text (xmlpp::Node* previous_sibling, const Glib::ustring& content=Glib::ustring()) |
| Add a new text node after the specified existing child node. | |
| TextNode* | add_child_text_before (xmlpp::Node* next_sibling, const Glib::ustring& content=Glib::ustring()) |
| Add a new text node before the specified existing child node. | |
| void | set_child_text (const Glib::ustring& content) |
| Set the text of the first text node, adding one if necessary. | |
| bool | has_child_text () const |
| Discover whether one of the child nodes is a text node. | |
| CommentNode* | add_child_comment (const Glib::ustring& content) |
| Append a new comment node. | |
| CdataNode* | add_child_cdata (const Glib::ustring& content) |
| Append a new CDATA node. | |
| EntityReference* | add_child_entity_reference (const Glib::ustring& name) |
| Append a new entity reference node. | |
| ProcessingInstructionNode* | add_child_processing_instruction (const Glib::ustring& name, const Glib::ustring& content) |
| Append a new processing instruction node. | |
Public Member Functions inherited from xmlpp::Node | |
| 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. | |
Protected Member Functions | |
| Glib::ustring | get_namespace_uri_for_prefix (const Glib::ustring& ns_prefix) const |
Protected Member Functions inherited from xmlpp::Node | |
| _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 () |
Additional Inherited Members | |
Static Public Member Functions inherited from xmlpp::Node | |
| 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. | |
Detailed Description
Element nodes have attributes as well as child nodes.
This will be instantiated by the parser.
Member Typedef Documentation
| typedef std::list<Attribute*> xmlpp::Element::AttributeList |
Constructor & Destructor Documentation
|
explicit |
|
virtual |
Member Function Documentation
| CdataNode* xmlpp::Element::add_child_cdata | ( | const Glib::ustring & | content | ) |
Append a new CDATA node.
- Parameters
-
content The raw text.
- Returns
- The new CDATA node.
- Exceptions
-
xmlpp::internal_error
| CommentNode* xmlpp::Element::add_child_comment | ( | const Glib::ustring & | content | ) |
Append a new comment node.
- Parameters
-
content The text. This should be unescaped - see ContentNode::set_content().
- Returns
- The new comment node.
- Exceptions
-
xmlpp::internal_error
| EntityReference* xmlpp::Element::add_child_entity_reference | ( | const Glib::ustring & | name | ) |
Append a new entity reference node.
The reference can be either an entity reference ("name" or "&name;") or a character reference ("#dec", "#xhex", "&#dec;", or "&#xhex;").
'&' and ';' are optional. If they exist, they are stripped from the stored copy of the name. Node::get_name() returns the name without '&' and ';'. If the Document is written to an XML file, '&' and ';' are written.
- Parameters
-
name The name of the entity.
- Returns
- The new entity reference node.
- Exceptions
-
xmlpp::internal_error
| ProcessingInstructionNode* xmlpp::Element::add_child_processing_instruction | ( | const Glib::ustring & | name, |
| const Glib::ustring & | content | ||
| ) |
Append a new processing instruction node.
- Parameters
-
name The name of the application to which the instruction is directed. content The content of the instruction. This should be unescaped - see ContentNode::set_content().
- Returns
- The new processing instruction node.
- Exceptions
-
xmlpp::internal_error
| TextNode* xmlpp::Element::add_child_text | ( | const Glib::ustring & | content = Glib::ustring() | ) |
Append a new text node.
- Parameters
-
content The text. This should be unescaped - see ContentNode::set_content().
- Returns
- The new text node.
- Exceptions
-
xmlpp::internal_error
| TextNode* xmlpp::Element::add_child_text | ( | xmlpp::Node* | previous_sibling, |
| const Glib::ustring & | content = Glib::ustring() |
||
| ) |
Add a new text node after the specified existing child node.
- Parameters
-
previous_sibling An existing child node. content The text. This should be unescaped - see ContentNode::set_content().
- Returns
- The new text node.
- Exceptions
-
xmlpp::internal_error
| TextNode* xmlpp::Element::add_child_text_before | ( | xmlpp::Node* | next_sibling, |
| const Glib::ustring & | content = Glib::ustring() |
||
| ) |
Add a new text node before the specified existing child node.
- Parameters
-
next_sibling An existing child node. content The text. This should be unescaped - see ContentNode::set_content().
- Returns
- The new text node.
- Exceptions
-
xmlpp::internal_error
| Attribute* xmlpp::Element::get_attribute | ( | const Glib::ustring & | name, |
| const Glib::ustring & | ns_prefix = Glib::ustring() |
||
| ) | const |
Get the attribute with this name, and optionally with this namespace.
- Parameters
-
name The name of the attribute that will be retrieved. ns_prefix Namespace prefix.
- Returns
- The attribute, or 0 if no suitable Attribute was found. Is either an AttributeNode*, pointing to an explicitly set attribute, or an AttributeDeclaration*, pointing to the declaration of an attribute with a default value.
| Glib::ustring xmlpp::Element::get_attribute_value | ( | const Glib::ustring & | name, |
| const Glib::ustring & | ns_prefix = Glib::ustring() |
||
| ) | const |
Get the value of the attribute with this name, and optionally with this namespace.
For finer control, you might use get_attribute() and use the methods of the Attribute class.
- Parameters
-
name The name of the attribute whose value will be retrieved. ns_prefix Namespace prefix.
- Returns
- The text value of the attribute, or an empty string if no such attribute was found.
| AttributeList xmlpp::Element::get_attributes | ( | ) |
Obtain the list of explicitly set attributes for this element.
- Returns
- The list of explicitly set attributes.
| const AttributeList xmlpp::Element::get_attributes | ( | ) | const |
Obtain the list of explicitly set attributes for this element.
- Returns
- The list of explicitly set attributes.
| TextNode* xmlpp::Element::get_child_text | ( | ) |
Get the first child text content node.
This is a convenience method, meant as an alternative to iterating over all the child nodes to find the first suitable node then and getting the text directly.
- Returns
- The first text node, if any.
| const TextNode* xmlpp::Element::get_child_text | ( | ) | const |
Get the first child text content node.
This is a convenience method, meant as an alternative to iterating over all the child nodes to find the first suitable node then and getting the text directly.
- Returns
- The first text node, if any.
|
protected |
| bool xmlpp::Element::has_child_text | ( | ) | const |
Discover whether one of the child nodes is a text node.
This is a convenience method, meant as an alternative to iterating over all the child nodes and examining them directly.
- Returns
- Whether this node has a child text node.
| void xmlpp::Element::remove_attribute | ( | const Glib::ustring & | name, |
| const Glib::ustring & | ns_prefix = Glib::ustring() |
||
| ) |
Remove the attribute with this name, and optionally with this namespace.
- Parameters
-
name The name of the attribute to be removed ns_prefix Namespace prefix. If specified, the attribute will be removed only if the attribute has this namespace.
| Attribute* xmlpp::Element::set_attribute | ( | const Glib::ustring & | name, |
| const Glib::ustring & | value, | ||
| const Glib::ustring & | ns_prefix = Glib::ustring() |
||
| ) |
Set the value of the attribute with this name, and optionally with this namespace.
A matching attribute will be added if no matching attribute already exists. For finer control, you might want to use get_attribute() and use the methods of the Attribute class.
- Parameters
-
name The name of the attribute whose value will change. value The new value for the attribute ns_prefix Namespace prefix. If the prefix has not been declared then this method will throw an exception.
- Returns
- The attribute that was changed, or 0 is no suitable Attribute was found.
- Exceptions
-
xmlpp::exception
| void xmlpp::Element::set_child_text | ( | const Glib::ustring & | content | ) |
Set the text of the first text node, adding one if necessary.
This is a convenience method, meant as an alternative to iterating over all the child nodes to find the first suitable node then and setting the text directly.
- Parameters
-
content The text. This should be unescaped - see ContentNode::set_content().
- Exceptions
-
xmlpp::internal_error
| void xmlpp::Element::set_namespace_declaration | ( | const Glib::ustring & | ns_uri, |
| const Glib::ustring & | ns_prefix = Glib::ustring() |
||
| ) |
This adds a namespace declaration to this node which will apply to this node and all children.
- Parameters
-
ns_uri The namespace to associate with the prefix, or to use as the default namespace if no prefix is specified. ns_prefix The namespace prefix. If no prefix is specified then the namespace URI will be the default namespace.
- Exceptions
-
xmlpp::exception If a new namespace node cannot be created, e.g. because a namespace with the same prefix but another URI already exists.
The documentation for this class was generated from the following file:
- nodes/element.h

Public Types inherited from