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
nullptr
in 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
nullptr
in 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
nullptr
in 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 | ||
) |