libxml++  4.9.1
About: libxml++ is a C++ wrapper for the libxml XML parser library.
  Fossies Dox: libxml++-4.9.1.tar.xz  ("unofficial" and yet experimental doxygen-generated source code documentation)  

xmlpp::DomParser Class Reference

DOM XML parser. More...

#include <domparser.h>

Inheritance diagram for xmlpp::DomParser:
[legend]
Collaboration diagram for xmlpp::DomParser:
[legend]

Public Member Functions

 DomParser ()
 Create a parser with an empty document. More...
 
 DomParser (const std::string &filename, bool validate=false)
 Instantiate the parser and parse a document immediately. More...
 
 ~DomParser () override
 
void set_xinclude_options (bool process_xinclude=true, bool generate_xinclude_nodes=true, bool fixup_base_uris=true) noexcept
 Set whether and how the parser will perform XInclude substitution. More...
 
void get_xinclude_options (bool &process_xinclude, bool &generate_xinclude_nodes, bool &fixup_base_uris) const noexcept
 Get whether and how the parser will perform XInclude substitution. More...
 
void parse_file (const std::string &filename) override
 Parse an XML document from a file. More...
 
void parse_memory (const ustring &contents) override
 Parse an XML document from a string. More...
 
void parse_memory_raw (const unsigned char *contents, size_type bytes_count) override
 Parse an XML document from raw memory. More...
 
void parse_stream (std::istream &in) override
 Parse an XML document from a stream. More...
 
 operator bool () const noexcept
 Test whether a document has been parsed. More...
 
Documentget_document () noexcept
 Get the parsed document. More...
 
const Documentget_document () const noexcept
 Get the parsed document. More...
 
- Public Member Functions inherited from xmlpp::Parser
 Parser ()
 
 ~Parser () override
 
void set_validate (bool val=true) noexcept
 By default, the parser will not validate the XML file. More...
 
bool get_validate () const noexcept
 See set_validate(). More...
 
void set_substitute_entities (bool val=true) noexcept
 Set whether the parser will automatically substitute entity references with the text of the entities' definitions. More...
 
bool get_substitute_entities () const noexcept
 See set_substitute_entities(). More...
 
void set_throw_messages (bool val=true) noexcept
 Set whether the parser will collect and throw error and warning messages. More...
 
bool get_throw_messages () const noexcept
 See set_throw_messages(). More...
 
void set_include_default_attributes (bool val=true) noexcept
 Set whether default attribute values from the DTD shall be included in the node tree. More...
 
bool get_include_default_attributes () const noexcept
 See set_include_default_attributes(). More...
 
void set_parser_options (int set_options=0, int clear_options=0) noexcept
 Set and/or clear parser option flags. More...
 
void get_parser_options (int &set_options, int &clear_options) const noexcept
 See set_parser_options(). More...
 

Protected Member Functions

void parse_context ()
 
void check_xinclude_and_finish_parsing ()
 
void release_underlying () override
 
- Protected Member Functions inherited from xmlpp::Parser
virtual void initialize_context ()
 
virtual void on_parser_error (const ustring &message)
 
virtual void on_parser_warning (const ustring &message)
 
virtual void on_validity_error (const ustring &message)
 
virtual void on_validity_warning (const ustring &message)
 
virtual void handle_exception ()
 To be called in an exception handler. More...
 
virtual void check_for_exception ()
 
virtual void check_for_error_and_warning_messages ()
 
- Protected Member Functions inherited from xmlpp::NonCopyable
 NonCopyable () noexcept
 
virtual ~NonCopyable ()
 
 NonCopyable (const NonCopyable &)=delete
 
NonCopyableoperator= (const NonCopyable &)=delete
 
 NonCopyable (NonCopyable &&)=delete
 
NonCopyableoperator= (NonCopyable &&)=delete
 

Protected Attributes

int xinclude_options_ = 0
 
Documentdoc_
 
- Protected Attributes inherited from xmlpp::Parser
_xmlParserCtxt * context_
 
std::unique_ptr< exceptionexception_
 

Additional Inherited Members

- Public Types inherited from xmlpp::Parser
using size_type = unsigned int
 
- Protected Types inherited from xmlpp::Parser
enum  MsgType { MsgType::ParserError, MsgType::ParserWarning, MsgType::ValidityError, MsgType::ValidityWarning }
 
- Static Protected Member Functions inherited from xmlpp::Parser
static void callback_parser_error (void *ctx, const char *msg,...)
 
static void callback_parser_warning (void *ctx, const char *msg,...)
 
static void callback_validity_error (void *ctx, const char *msg,...)
 
static void callback_validity_warning (void *ctx, const char *msg,...)
 
static void callback_error_or_warning (MsgType msg_type, void *ctx, const char *msg, va_list var_args)
 

Detailed Description

DOM XML parser.

DOM = Document Object Model

Definition at line 18 of file domparser.h.

Constructor & Destructor Documentation

◆ DomParser() [1/2]

xmlpp::DomParser::DomParser ( )

Create a parser with an empty document.

Exceptions
xmlpp::internal_errorIf an empty document can't be created.

Definition at line 23 of file domparser.cc.

References doc_.

◆ DomParser() [2/2]

xmlpp::DomParser::DomParser ( const std::string &  filename,
bool  validate = false 
)
explicit

Instantiate the parser and parse a document immediately.

Parameters
filenameThe path to the file.
validateWhether the parser should validate the XML.
Exceptions
xmlpp::internal_error
xmlpp::parse_error
xmlpp::validity_error

Definition at line 30 of file domparser.cc.

References parse_file(), and xmlpp::Parser::set_validate().

◆ ~DomParser()

xmlpp::DomParser::~DomParser ( )
override

Definition at line 37 of file domparser.cc.

References release_underlying().

Member Function Documentation

◆ check_xinclude_and_finish_parsing()

void xmlpp::DomParser::check_xinclude_and_finish_parsing ( )
protected

◆ get_document() [1/2]

const Document * xmlpp::DomParser::get_document ( ) const
noexcept

Get the parsed document.

Returns
A pointer to the parsed document, or nullptr.

Definition at line 268 of file domparser.cc.

References doc_.

◆ get_document() [2/2]

Document * xmlpp::DomParser::get_document ( )
noexcept

Get the parsed document.

Returns
A pointer to the parsed document, or nullptr.

Definition at line 263 of file domparser.cc.

References doc_.

Referenced by xmlpp::RelaxNGValidator::validate().

◆ get_xinclude_options()

void xmlpp::DomParser::get_xinclude_options ( bool &  process_xinclude,
bool &  generate_xinclude_nodes,
bool &  fixup_base_uris 
) const
noexcept

Get whether and how the parser will perform XInclude substitution.

Since @PACKAGE_NAME@ 3.2:
Parameters
[out]process_xincludeDo XInclude substitution on the XML document.
[out]generate_xinclude_nodesGenerate XIncludeStart and XIncludeEnd nodes.
[out]fixup_base_urisAdd or replace xml:base attributes in included element nodes, if necessary to preserve the target of relative URIs.

Definition at line 54 of file domparser.cc.

◆ operator bool()

xmlpp::DomParser::operator bool ( ) const
explicitnoexcept

Test whether a document has been parsed.

Definition at line 258 of file domparser.cc.

◆ parse_context()

◆ parse_file()

void xmlpp::DomParser::parse_file ( const std::string &  filename)
overridevirtual

Parse an XML document from a file.

If the parser already contains a document, that document and all its nodes are deleted.

Parameters
filenameThe path to the file.
Exceptions
xmlpp::internal_error
xmlpp::parse_error
xmlpp::validity_error

Implements xmlpp::Parser.

Definition at line 62 of file domparser.cc.

References xmlpp::Parser::context_, xmlpp::KeepBlanks::Default, xmlpp::format_xml_error(), parse_context(), and release_underlying().

Referenced by DomParser().

◆ parse_memory()

void xmlpp::DomParser::parse_memory ( const ustring contents)
overridevirtual

Parse an XML document from a string.

If the parser already contains a document, that document and all its nodes are deleted.

Parameters
contentsThe XML document as a string.
Exceptions
xmlpp::internal_error
xmlpp::parse_error
xmlpp::validity_error

Implements xmlpp::Parser.

Definition at line 103 of file domparser.cc.

References parse_memory_raw().

◆ parse_memory_raw()

void xmlpp::DomParser::parse_memory_raw ( const unsigned char *  contents,
size_type  bytes_count 
)
overridevirtual

Parse an XML document from raw memory.

If the parser already contains a document, that document and all its nodes are deleted.

Parameters
contentsThe XML document as an array of bytes.
bytes_countThe number of bytes in the contents array.
Exceptions
xmlpp::internal_error
xmlpp::parse_error
xmlpp::validity_error

Implements xmlpp::Parser.

Definition at line 85 of file domparser.cc.

References xmlpp::Parser::context_, xmlpp::KeepBlanks::Default, xmlpp::format_xml_error(), parse_context(), and release_underlying().

Referenced by parse_memory().

◆ parse_stream()

void xmlpp::DomParser::parse_stream ( std::istream &  in)
overridevirtual

Parse an XML document from a stream.

If the parser already contains a document, that document and all its nodes are deleted.

Parameters
inThe stream.
Exceptions
xmlpp::internal_error
xmlpp::parse_error
xmlpp::validity_error

Implements xmlpp::Parser.

Definition at line 177 of file domparser.cc.

References xmlpp::Parser::check_for_exception(), check_xinclude_and_finish_parsing(), xmlpp::Parser::context_, xmlpp::KeepBlanks::Default, xmlpp::format_xml_error(), xmlpp::format_xml_parser_error(), xmlpp::Parser::initialize_context(), and release_underlying().

◆ release_underlying()

void xmlpp::DomParser::release_underlying ( )
overrideprotectedvirtual

Reimplemented from xmlpp::Parser.

Definition at line 247 of file domparser.cc.

References doc_, and xmlpp::Parser::release_underlying().

Referenced by parse_context(), parse_file(), parse_memory_raw(), parse_stream(), and ~DomParser().

◆ set_xinclude_options()

void xmlpp::DomParser::set_xinclude_options ( bool  process_xinclude = true,
bool  generate_xinclude_nodes = true,
bool  fixup_base_uris = true 
)
noexcept

Set whether and how the parser will perform XInclude substitution.

Since @PACKAGE_NAME@ 3.2:
Parameters
process_xincludeDo XInclude substitution on the XML document. If false, the other parameters have no effect.
generate_xinclude_nodesGenerate XIncludeStart and XIncludeEnd nodes.
fixup_base_urisAdd or replace xml:base attributes in included element nodes, if necessary to preserve the target of relative URIs.

Definition at line 42 of file domparser.cc.

Member Data Documentation

◆ doc_

Document* xmlpp::DomParser::doc_
protected

◆ xinclude_options_

int xmlpp::DomParser::xinclude_options_ = 0
protected

Definition at line 122 of file domparser.h.

Referenced by check_xinclude_and_finish_parsing().


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