# xmlpp::Document Class Reference

Represents an XML document in the DOM model. More...

Inheritance diagram for xmlpp::Document:

[legend]

List of all members.

## Classes
class | Init
## Public Member Functions
| Document (const Glib::ustring &version="1.0")
virtual | ~Document ()
Glib::ustring | get_encoding () const
Dtd * | get_internal_subset () const
void | set_internal_subset (const Glib::ustring &name, const Glib::ustring &external_id, const Glib::ustring &system_id)
Element * | get_root_node () const
| Return the root node.
Element * | create_root_node (const Glib::ustring &name, const Glib::ustring &ns_uri=Glib::ustring(), const Glib::ustring &ns_prefix=Glib::ustring())
| Creates the root node.
Element * | create_root_node_by_import (const Node *node, bool recursive=true)
| Creates a root node by importing the node from another document, without affecting the source node.
CommentNode * | add_comment (const Glib::ustring &content)
| Append a new comment node.
void | write_to_file (const Glib::ustring &filename, const Glib::ustring &encoding=Glib::ustring())
| Write the document to a file.
void | write_to_file_formatted (const Glib::ustring &filename, const Glib::ustring &encoding=Glib::ustring())
| Write the document to a file.
Glib::ustring | write_to_string (const Glib::ustring &encoding=Glib::ustring())
| Write the document to the memory.
Glib::ustring | write_to_string_formatted (const Glib::ustring &encoding=Glib::ustring())
| Write the document to the memory.
void | write_to_stream (std::ostream &output, const Glib::ustring &encoding=Glib::ustring())
| Write the document to a std::ostream.
void | write_to_stream_formatted (std::ostream &output, const Glib::ustring &encoding=Glib::ustring())
| Write the document to a std::ostream.
virtual void | set_entity_declaration (const Glib::ustring &name, XmlEntityType type, const Glib::ustring &publicId, const Glib::ustring &systemId, const Glib::ustring &content)
| Add an Entity declaration to the document.
_xmlDoc * | cobj ()
| Access the underlying libxml implementation.
const _xmlDoc * | cobj () const
| Access the underlying libxml implementation.
## Protected Member Functions
_xmlEntity * | get_entity (const Glib::ustring &name)
| Retrieve an Entity.
## Friends
class | DomParser
class | SaxParser

## Detailed Description

Represents an XML document in the DOM model.

## Constructor & Destructor Documentation

xmlpp::Document::Document | ( | const Glib::ustring & | version = `"1.0"` | ) | `[explicit]`

virtual xmlpp::Document::~Document | ( |  | ) | `[virtual]`

## Member Function Documentation

CommentNode* xmlpp::Document::add_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.

const _xmlDoc* xmlpp::Document::cobj | ( |  | ) | const

Access the underlying libxml implementation.

_xmlDoc* xmlpp::Document::cobj | ( |  | ) |

Access the underlying libxml implementation.

Element* xmlpp::Document::create_root_node | ( | const Glib::ustring & | name,
|  | const Glib::ustring & | ns_uri = `Glib::ustring()`,
|  | const Glib::ustring & | ns_prefix = `Glib::ustring()` |
| ) |  |  |

Creates the root node.

Parameters:

  | name | The node's name.
  | ns_uri | The namespace URI. A namspace declaration will be added to this node, because it could not have been declared before.
  | ns_prefix | The namespace prefix to associate with the namespace. If no namespace prefix is specified then the namespace URI will be the default namespace.

Returns:
  A pointer to the new root node

Element* xmlpp::Document::create_root_node_by_import | ( | const Node * | node,
|  | bool | recursive = `true` |
| ) |  |  |

Creates a root node by importing the node from another document, without affecting the source node.

Parameters:

  | node | The node to copy and insert as the root node of the document
  | recursive | Whether to import the child nodes also. Defaults to true.

Returns:
  A pointer to the new root node

Glib::ustring xmlpp::Document::get_encoding | ( |  | ) | const

Returns:
  The encoding used in the source from which the document has been loaded.

_xmlEntity* xmlpp::Document::get_entity | ( | const Glib::ustring & | name | ) | `[protected]`

Retrieve an Entity.

The entity can be from an external subset or internally declared.

Parameters:

  | name | Then name of the entity to get.

Returns:
  A pointer to the libxml2 entity structure.

Dtd* xmlpp::Document::get_internal_subset | ( |  | ) | const

Element* xmlpp::Document::get_root_node | ( |  | ) | const

Return the root node.

This function does _not_ create a default root node if it doesn't exist.

Returns:
  A pointer to the root node if it exists, 0 otherwise.

virtual void xmlpp::Document::set_entity_declaration | ( | const Glib::ustring & | name,
|  | XmlEntityType | type,
|  | const Glib::ustring & | publicId,
|  | const Glib::ustring & | systemId,
|  | const Glib::ustring & | content |
| ) |  |  | `[virtual]`

Add an Entity declaration to the document.

Parameters:

  | name | The name of the entity that will be used in an entity reference.
  | type | The type of entity.
  | publicId | The public ID of the subset.
  | systemId | The system ID of the subset.
  | content | The value of the Entity. In entity reference substitutions, this is the replacement value.

void xmlpp::Document::set_internal_subset | ( | const Glib::ustring & | name,
|  | const Glib::ustring & | external_id,
|  | const Glib::ustring & | system_id |
| ) |  |  |

void xmlpp::Document::write_to_file | ( | const Glib::ustring & | filename,
|  | const Glib::ustring & | encoding = `Glib::ustring()` |
| ) |  |  |

Write the document to a file.

Parameters:

  | filename |
  | encoding | If not provided, UTF-8 is used

void xmlpp::Document::write_to_file_formatted | ( | const Glib::ustring & | filename,
|  | const Glib::ustring & | encoding = `Glib::ustring()` |
| ) |  |  |

Write the document to a file.

The output is formatted by inserting whitespaces, which is easier to read for a human, but may insert unwanted significant whitespaces. Use with care !

Parameters:

  | filename |
  | encoding | If not provided, UTF-8 is used

void xmlpp::Document::write_to_stream | ( | std::ostream & | output,
|  | const Glib::ustring & | encoding = `Glib::ustring()` |
| ) |  |  |

Write the document to a std::ostream.

Parameters:

  | output | A reference to the stream in which the document will be written
  | encoding | If not provided, UTF-8 is used

Warning:
  This method is much less efficient than write_to_string if you want to dump the document to a buffer or the standard output. Writing to a fstream is almost as fast as write_to_file

void xmlpp::Document::write_to_stream_formatted | ( | std::ostream & | output,
|  | const Glib::ustring & | encoding = `Glib::ustring()` |
| ) |  |  |

Write the document to a std::ostream.

The output is formatted by inserting whitespaces, which is easier to read for a human, but may insert unwanted significant whitespaces. Use with care !

Parameters:

  | output | A reference to the stream in which the document will be written
  | encoding | If not provided, UTF-8 is used

Warning:
  See write_to_stream

Glib::ustring xmlpp::Document::write_to_string | ( | const Glib::ustring & | encoding = `Glib::ustring()` | ) |

Write the document to the memory.

Parameters:

  | encoding | If not provided, UTF-8 is used

Glib::ustring xmlpp::Document::write_to_string_formatted | ( | const Glib::ustring & | encoding = `Glib::ustring()` | ) |

Write the document to the memory.

The output is formatted by inserting whitespaces, which is easier to read for a human, but may insert unwanted significant whitespaces. Use with care !

Parameters:

  | encoding | If not provided, UTF-8 is used

Returns:
  The written document.

## Friends And Related Function Documentation

friend class DomParser`[friend]`

friend class SaxParser`[friend]`

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

- document.h