libxml++: xmlpp::TextReader Class Reference
A TextReader-style XML parser. More...
#include <libxml++/parsers/textreader.h>

Public Types | |
| enum | NodeType { NodeType::InternalError = -1, NodeType::None = 0, NodeType::Element = 1, NodeType::Attribute = 2, NodeType::Text = 3, NodeType::CDATA = 4, NodeType::EntityReference = 5, NodeType::Entity = 6, NodeType::ProcessingInstruction = 7, NodeType::Comment = 8, NodeType::Document = 9, NodeType::DocumentType = 10, NodeType::DocumentFragment = 11, NodeType::Notation = 12, NodeType::Whitespace = 13, NodeType::SignificantWhitespace = 14, NodeType::EndElement = 15, NodeType::EndEntity = 16, NodeType::XmlDeclaration = 17 } |
| Node type of the current node. More... | |
| enum | ParserProperties { ParserProperties::LoadDtd = 1, ParserProperties::DefaultAttrs = 2, ParserProperties::Validate = 3, ParserProperties::SubstEntities = 4 } |
| enum | ReadState { ReadState::InternalError = -1, ReadState::Initial = 0, ReadState::Interactive = 1, ReadState::Error = 2, ReadState::EndOfFile = 3, ReadState::Closed = 4, ReadState::Reading = 5 } |
| using | size_type = unsigned int |
Public Member Functions | |
| TextReader (struct _xmlTextReader* cobj) | |
| Wraps a TextReader object from an underlying libxml object. More... | |
| TextReader (const ustring& URI) | |
| Creates a new TextReader object to parse a file or URI. More... | |
| TextReader (const unsigned char* data, size_type size, const ustring& uri=ustring()) | |
| Creates a new TextReader object which parses in memory data. More... | |
| ~TextReader () override | |
| void | close () |
| Node* | expand () |
| Expand the current node. More... | |
| ustring | get_attribute (int number) const |
| ustring | get_attribute (const ustring& name) const |
| ustring | get_attribute (const ustring& local_name, const ustring& ns_uri) const |
| int | get_attribute_count () const |
| Gets the number of attributes on the current node. More... | |
| ustring | get_base_uri () const |
| Gets the base Uniform Resource Identifier (URI) of the current node. More... | |
| Node* | get_current_node () |
| Get a pointer to the current node. More... | |
| const Node* | get_current_node () const |
| Get a pointer to the current node. More... | |
| int | get_depth () const |
| Gets the depth of the current node in the XML document. More... | |
| ustring | get_local_name () const |
| ustring | get_name () const |
| ustring | get_namespace_uri () const |
| NodeType | get_node_type () const |
| Get the node type of the current node. More... | |
| bool | get_normalization () const |
| bool | get_parser_property (ParserProperties property) const |
| ustring | get_prefix () const |
| Get the namespace prefix associated with the current node. More... | |
| char | get_quote_char () const |
| Get the quotation mark character used to enclose the value of an attribute. More... | |
| ReadState | get_read_state () const |
| ustring | get_value () const |
| ustring | get_xml_lang () const |
| bool | has_attributes () const |
| Gets a value indicating whether the current node has any attributes. More... | |
| bool | has_value () const |
| Whether the node can have a text value. More... | |
| bool | is_default () const |
| Whether an Attribute node was generated from the default value defined in the DTD or schema. More... | |
| bool | is_empty_element () const |
| Check if the current node is empty. More... | |
| bool | is_valid () const |
| ustring | lookup_namespace (const ustring& prefix) const |
| bool | move_to_attribute (int number) |
| bool | move_to_attribute (const ustring& name) |
| bool | move_to_attribute (const ustring& local_name, const ustring& ns_uri) |
| bool | move_to_element () |
| bool | move_to_first_attribute () |
| bool | move_to_next_attribute () |
| bool | next () |
| bool | read () |
| Moves the position of the current instance to the next node in the stream, exposing its properties. More... | |
| bool | read_attribute_value () |
| Parses an attribute value into one or more Text and EntityReference nodes. More... | |
| ustring | read_inner_xml () |
| Reads the contents of the current node, including child nodes and markup. More... | |
| ustring | read_outer_xml () |
| Reads the current node and its contents, including child nodes and markup. More... | |
| ustring | read_string () |
| Reads the contents of an element or a text node as a string. More... | |
| void | set_normalization (bool value) |
| void | set_parser_property (ParserProperties property, bool value) |
Additional Inherited Members | |
Protected Member Functions inherited from xmlpp::NonCopyable | |
| NonCopyable () noexcept | |
| NonCopyable (const NonCopyable&)=delete | |
| NonCopyable (NonCopyable&&)=delete | |
| virtual | ~NonCopyable () |
| NonCopyable& | operator= (const NonCopyable&)=delete |
| NonCopyable& | operator= (NonCopyable&&)=delete |
Detailed Description
A TextReader-style XML parser.
A reader that provides fast, non-cached, forward-only access to XML data, in the style of .Net's XmlTextReader class.
Member Typedef Documentation
| using xmlpp::TextReader::size_type = unsigned int |
Member Enumeration Documentation
|
strong |
Node type of the current node.
See DotGNU's XmlNodeType enum.
|
strong |
|
strong |
Constructor & Destructor Documentation
| xmlpp::TextReader::TextReader | ( | struct _xmlTextReader * | cobj | ) |
Wraps a TextReader object from an underlying libxml object.
The TextReader takes ownership of cobj.
- Parameters
-
cobj The underlying libxml xmlTextReader object.
| xmlpp::TextReader::TextReader | ( | const ustring& | URI | ) |
Creates a new TextReader object to parse a file or URI.
- Parameters
-
URI The URI to read.
- Exceptions
-
xmlpp::internal_error If an xmlTextReader object cannot be created.
| xmlpp::TextReader::TextReader | ( | const unsigned char * | data, |
| size_type | size, | ||
| const ustring& | uri = ustring() |
||
| ) |
Creates a new TextReader object which parses in memory data.
- Parameters
-
data The data to parse. size The number of bytes in data. uri The base URI to use for the document.
- Exceptions
-
xmlpp::internal_error If an xmlTextReader object cannot be created.
|
override |
Member Function Documentation
| void xmlpp::TextReader::close | ( | ) |
| Node* xmlpp::TextReader::expand | ( | ) |
Expand the current node.
Reads the contents of the current node and the full subtree. It then makes the subtree available until the next call to read() or next().
- Warning
- The C++ wrappers are not deleted. Using this method causes memory leaks, unless you call xmlpp::Node::free_wrappers(), which is not intended to be called by the application.
- Returns
- A pointer to the current node, or
nullptrin case of error.
- Exceptions
-
xmlpp::parse_error xmlpp::validity_error
| ustring xmlpp::TextReader::get_attribute | ( | int | number | ) | const |
| int xmlpp::TextReader::get_attribute_count | ( | ) | const |
Gets the number of attributes on the current node.
- Returns
- The number of attributes on the current node, or zero if the current node does not support attributes, or -1 in case of error.
- Exceptions
-
xmlpp::parse_error xmlpp::validity_error
| ustring xmlpp::TextReader::get_base_uri | ( | ) | const |
Gets the base Uniform Resource Identifier (URI) of the current node.
- Returns
- The base URI of the current node or an empty ustring if not available.
| Node* xmlpp::TextReader::get_current_node | ( | ) |
Get a pointer to the current node.
- Warning
- This is dangerous because the underlying node may be destroyed on the next read. The C++ wrapper is not deleted. Using this method causes memory leaks, unless you call xmlpp::Node::free_wrappers(), which is not intended to be called by the application.
- Returns
- A pointer to the current node, or
nullptrin case of error.
| const Node* xmlpp::TextReader::get_current_node | ( | ) | const |
Get a pointer to the current node.
- Warning
- See the non-const get_current_node().
- Returns
- A pointer to the current node, or
nullptrin case of error.
| int xmlpp::TextReader::get_depth | ( | ) | const |
Gets the depth of the current node in the XML document.
- Returns
- The depth of the current node in the XML document, or -1 in case of error.
| ustring xmlpp::TextReader::get_local_name | ( | ) | const |
| ustring xmlpp::TextReader::get_name | ( | ) | const |
| ustring xmlpp::TextReader::get_namespace_uri | ( | ) | const |
| NodeType xmlpp::TextReader::get_node_type | ( | ) | const |
Get the node type of the current node.
- Returns
- The xmlpp::TextReader::NodeType of the current node. In case of error, either returns xmlpp::TextReader::NodeType::InternalError or throws an exception.
- Exceptions
-
xmlpp::parse_error xmlpp::validity_error
| bool xmlpp::TextReader::get_normalization | ( | ) | const |
| bool xmlpp::TextReader::get_parser_property | ( | ParserProperties | property | ) | const |
| ustring xmlpp::TextReader::get_prefix | ( | ) | const |
Get the namespace prefix associated with the current node.
- Returns
- The namespace prefix, or an empty string if not available.
| char xmlpp::TextReader::get_quote_char | ( | ) | const |
Get the quotation mark character used to enclose the value of an attribute.
- Returns
- Returns " or ' and -1 in case of error.
| ReadState xmlpp::TextReader::get_read_state | ( | ) | const |
| ustring xmlpp::TextReader::get_value | ( | ) | const |
| ustring xmlpp::TextReader::get_xml_lang | ( | ) | const |
| bool xmlpp::TextReader::has_attributes | ( | ) | const |
Gets a value indicating whether the current node has any attributes.
- Returns
- true if the current has attributes, false otherwise.
| bool xmlpp::TextReader::has_value | ( | ) | const |
Whether the node can have a text value.
- Returns
- true if the current node can have an associated text value, false otherwise.
| bool xmlpp::TextReader::is_default | ( | ) | const |
Whether an Attribute node was generated from the default value defined in the DTD or schema.
- Returns
- true if defaulted, false otherwise.
| bool xmlpp::TextReader::is_empty_element | ( | ) | const |
Check if the current node is empty.
- Returns
- true if empty, false otherwise.
| bool xmlpp::TextReader::is_valid | ( | ) | const |
| bool xmlpp::TextReader::move_to_attribute | ( | int | number | ) |
| bool xmlpp::TextReader::move_to_attribute | ( | const ustring& | name | ) |
| bool xmlpp::TextReader::move_to_element | ( | ) |
| bool xmlpp::TextReader::move_to_first_attribute | ( | ) |
| bool xmlpp::TextReader::move_to_next_attribute | ( | ) |
| bool xmlpp::TextReader::next | ( | ) |
| bool xmlpp::TextReader::read | ( | ) |
Moves the position of the current instance to the next node in the stream, exposing its properties.
- Returns
- true if the node was read successfully, false if there are no more nodes to read.
- Exceptions
-
xmlpp::parse_error xmlpp::validity_error
| bool xmlpp::TextReader::read_attribute_value | ( | ) |
Parses an attribute value into one or more Text and EntityReference nodes.
- Returns
- A bool where true indicates the attribute value was parsed, and false indicates the reader was not positioned on an attribute node or all the attribute values have been read.
- Exceptions
-
xmlpp::parse_error xmlpp::validity_error
| ustring xmlpp::TextReader::read_inner_xml | ( | ) |
Reads the contents of the current node, including child nodes and markup.
- Returns
- A ustring containing the XML content, or an empty ustring if the current node is neither an element nor attribute, or has no child nodes.
- Exceptions
-
xmlpp::parse_error xmlpp::validity_error
| ustring xmlpp::TextReader::read_outer_xml | ( | ) |
Reads the current node and its contents, including child nodes and markup.
- Returns
- A ustring containing the XML content, or an empty ustring if the current node is neither an element nor attribute.
- Exceptions
-
xmlpp::parse_error xmlpp::validity_error
| ustring xmlpp::TextReader::read_string | ( | ) |
Reads the contents of an element or a text node as a string.
- Returns
- A ustring containing the contents of the Element or Text node, or an empty ustring if the reader is positioned on any other type of node.
- Exceptions
-
xmlpp::parse_error xmlpp::validity_error
| void xmlpp::TextReader::set_normalization | ( | bool | value | ) |
| void xmlpp::TextReader::set_parser_property | ( | ParserProperties | property, |
| bool | value | ||
| ) |

Protected Member Functions inherited from