libxml++ 2.34.2
Public Types | Public Member Functions | Static Public Member Functions | Protected Member Functions

xmlpp::Node Class Reference

Represents XML Nodes. More...

#include <libxml++/nodes/node.h>

Inheritance diagram for xmlpp::Node:
Inheritance graph
[legend]
Collaboration diagram for xmlpp::Node:
Collaboration graph
[legend]

List of all members.

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
Glib::ustring get_namespace_uri () const
int get_line () const
 Discover at what line number this node occurs in the XML file.
const Elementget_parent () const
 Get the parent element for this node.
Elementget_parent ()
 Get the parent element for this node.
const Nodeget_next_sibling () const
 Get the next sibling for this node.
Nodeget_next_sibling ()
 Get the next sibling for this node.
const Nodeget_previous_sibling () const
 Get the previous sibling for this node .
Nodeget_previous_sibling ()
 Get the previous sibling for 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.
Elementadd_child (const Glib::ustring& name, const Glib::ustring& ns_prefix=Glib::ustring())
 Add a child element to this node.
Elementadd_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.
Elementadd_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.
Nodeimport_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
 Return the XPath of this node.
NodeSet find (const Glib::ustring& xpath) const
 Find nodes from a XPath expression.
NodeSet find (const Glib::ustring& xpath, const PrefixNsMap& namespaces) const
 Find nodes from a 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* attr)
 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.

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

A map of namespace prefixes to namespace URIs.


Constructor & Destructor Documentation

xmlpp::Node::Node ( _xmlNode *  node) [explicit]
virtual xmlpp::Node::~Node ( ) [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.

Parameters:
nameThe new node name
ns_prefixThe namespace prefix. If the prefix has not been declared then this method will throw an exception.
Returns:
The newly-created element
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.

Since libxml++ 2.24:
Parameters:
previous_siblingAn existing child node.
nameThe new node name
ns_prefixThe namespace prefix. If the prefix has not been declared then this method will throw an exception.
Returns:
The newly-created element
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.

Since libxml++ 2.24:
Parameters:
next_siblingAn existing child node.
nameThe new node name
ns_prefixThe namespace prefix. If the prefix has not been declared then this method will throw an exception.
Returns:
The newly-created element
_xmlNode* xmlpp::Node::cobj ( )

Access the underlying libxml implementation.

Reimplemented in xmlpp::Attribute.

const _xmlNode* xmlpp::Node::cobj ( ) const

Access the underlying libxml implementation.

Reimplemented in xmlpp::Attribute.

_xmlNode* xmlpp::Node::create_new_child_node ( const Glib::ustring name,
const Glib::ustring ns_prefix 
) [protected]

Create the C instance ready to be added to the parent node.

static void xmlpp::Node::create_wrapper ( _xmlNode *  node) [static]

Construct the correct C++ instance for a given libxml C struct instance.

This is only for use by the libxml++ implementation.

node A pointer to an xmlNode or a "derived" struct, such as xmlDoc, xmlAttr, etc.

NodeSet xmlpp::Node::find ( const Glib::ustring xpath) const

Find nodes from a XPath expression.

Parameters:
xpathThe XPath of the nodes.
NodeSet xmlpp::Node::find ( const Glib::ustring xpath,
const PrefixNsMap namespaces 
) const

Find nodes from a XPath expression.

Parameters:
xpathThe XPath of the nodes.
namespacesA map of namespace prefixes to namespace URIs to be used while finding.
static void xmlpp::Node::free_wrappers ( _xmlNode *  attr) [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. 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:
nameThe names of the child nodes to get. If you do not specigy 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:
nameThe names of the child nodes to get. If you do not specigy a name, then the list will contain all nodes, regardless of their names.
Returns:
The list of child nodes.
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

Get the name of this node.

Returns:
The node's name.

Reimplemented in xmlpp::Attribute.

Glib::ustring xmlpp::Node::get_namespace_prefix ( ) const
Glib::ustring xmlpp::Node::get_namespace_uri ( ) const
const Node* xmlpp::Node::get_next_sibling ( ) const

Get the next sibling for this node.

Returns:
The next sibling
Node* xmlpp::Node::get_next_sibling ( )

Get the next sibling for this node.

Returns:
The next sibling
Element* xmlpp::Node::get_parent ( )

Get the parent element for this node.

Returns:
The parent node
const Element* xmlpp::Node::get_parent ( ) const

Get the parent element for this node.

Returns:
The parent node
Glib::ustring xmlpp::Node::get_path ( ) const

Return the XPath of this node.

Returns:
The XPath of the node.
Node* xmlpp::Node::get_previous_sibling ( )

Get the previous sibling for this node.

Returns:
The previous sibling
const Node* xmlpp::Node::get_previous_sibling ( ) const

Get the previous sibling for this node .

Returns:
The previous sibling
Node* xmlpp::Node::import_node ( const Node node,
bool  recursive = true 
)

Import node(s) from another document under this node, without affecting the source node.

Parameters:
nodeThe node to copy and insert under the current node.
recursiveWhether to import the child nodes also. Defaults to true.
Returns:
The newly-created node.
void xmlpp::Node::remove_child ( Node node)

Remove the child node.

Parameters:
nodeThe 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:
nameThe 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_prefixThe namespace prefix.

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