|
Classes | |
class | attribute_iterator |
Iterator of child attributes of xml_node. More... | |
class | file |
Represents data loaded from a file. More... | |
class | memory_pool |
This class is used by the parser to create new nodes and attributes, without overheads of dynamic memory allocation. More... | |
class | node_iterator |
Iterator of child nodes of xml_node. More... | |
class | parse_error |
Parse error exception. More... | |
class | xml_attribute |
Class representing attribute node of XML document. More... | |
class | xml_base |
Base class for xml_node and xml_attribute implementing common functions: name(), name_size(), value(), value_size() and parent(). More... | |
class | xml_document |
This class represents root of the DOM hierarchy. More... | |
class | xml_node |
Class representing a node of XML document. More... | |
Enumerations | |
enum | node_type { node_document, node_element, node_data, node_cdata, node_comment, node_declaration, node_doctype, node_pi } |
Enumeration listing all node types produced by the parser. More... | |
Functions | |
template<class Ch > | |
std::size_t | count_attributes (xml_node< Ch > *node) |
Counts attributes of node. More... | |
template<class Ch > | |
std::size_t | count_children (xml_node< Ch > *node) |
Counts children of node. More... | |
template<class Ch > | |
std::basic_ostream< Ch > & | operator<< (std::basic_ostream< Ch > &out, const xml_node< Ch > &node) |
Prints formatted XML to given output stream. More... | |
template<class OutIt , class Ch > | |
OutIt | print (OutIt out, const xml_node< Ch > &node, int flags=0) |
Prints XML to given output iterator. More... | |
template<class Ch > | |
std::basic_ostream< Ch > & | print (std::basic_ostream< Ch > &out, const xml_node< Ch > &node, int flags=0) |
Prints XML to given output stream. More... | |
Variables | |
const int | parse_comment_nodes = 0x40 |
Parse flag instructing the parser to create comments nodes. More... | |
const int | parse_declaration_node = 0x20 |
Parse flag instructing the parser to create XML declaration node. More... | |
const int | parse_default = 0 |
Parse flags which represent default behaviour of the parser. More... | |
const int | parse_doctype_node = 0x80 |
Parse flag instructing the parser to create DOCTYPE node. More... | |
const int | parse_fastest = parse_non_destructive | parse_no_data_nodes |
A combination of parse flags resulting in fastest possible parsing, without sacrificing important data. More... | |
const int | parse_full = parse_declaration_node | parse_comment_nodes | parse_doctype_node | parse_pi_nodes | parse_validate_closing_tags |
A combination of parse flags resulting in largest amount of data being extracted. More... | |
const int | parse_no_data_nodes = 0x1 |
Parse flag instructing the parser to not create data nodes. More... | |
const int | parse_no_element_values = 0x2 |
Parse flag instructing the parser to not use text of first data node as a value of parent element. More... | |
const int | parse_no_entity_translation = 0x8 |
Parse flag instructing the parser to not translate entities in the source text. More... | |
const int | parse_no_string_terminators = 0x4 |
Parse flag instructing the parser to not place zero terminators after strings in the source text. More... | |
const int | parse_no_utf8 = 0x10 |
Parse flag instructing the parser to disable UTF-8 handling and assume plain 8 bit characters. More... | |
const int | parse_non_destructive = parse_no_string_terminators | parse_no_entity_translation |
A combination of parse flags that forbids any modifications of the source text. More... | |
const int | parse_normalize_whitespace = 0x800 |
Parse flag instructing the parser to condense all whitespace runs of data nodes to a single space character. More... | |
const int | parse_pi_nodes = 0x100 |
Parse flag instructing the parser to create PI nodes. More... | |
const int | parse_trim_whitespace = 0x400 |
Parse flag instructing the parser to trim all leading and trailing whitespace of data nodes. More... | |
const int | parse_validate_closing_tags = 0x200 |
Parse flag instructing the parser to validate closing tag names. More... | |
const int | print_no_indenting = 0x1 |
Printer flag instructing the printer to suppress indenting of XML. See print() function. More... | |
enum node_type |
Enumeration listing all node types produced by the parser.
Use xml_node::type() function to query node type.
Definition at line 144 of file rapidxml.hpp.
|
inline |
Counts attributes of node.
Time complexity is O(n).
Definition at line 117 of file rapidxml_utils.hpp.
|
inline |
Counts children of node.
Time complexity is O(n).
Definition at line 100 of file rapidxml_utils.hpp.
|
inline |
Prints formatted XML to given output stream.
Uses default printing flags. Use print() function to customize printing process.
out | Output stream to print to. |
node | Node to be printed. |
Definition at line 531 of file rapidxml_print.hpp.
|
inline |
Prints XML to given output iterator.
out | Output iterator to print to. |
node | Node to be printed. Pass xml_document to print entire document. |
flags | Flags controlling how XML is printed. |
Definition at line 507 of file rapidxml_print.hpp.
|
inline |
Prints XML to given output stream.
out | Output stream to print to. |
node | Node to be printed. Pass xml_document to print entire document. |
flags | Flags controlling how XML is printed. |
Definition at line 520 of file rapidxml_print.hpp.
const int parse_comment_nodes = 0x40 |
Parse flag instructing the parser to create comments nodes.
By default, comment nodes are not created. Can be combined with other flags by use of | operator.
See xml_document::parse() function.
Definition at line 208 of file rapidxml.hpp.
const int parse_declaration_node = 0x20 |
Parse flag instructing the parser to create XML declaration node.
By default, declaration node is not created. Can be combined with other flags by use of | operator.
See xml_document::parse() function.
Definition at line 201 of file rapidxml.hpp.
const int parse_default = 0 |
Parse flags which represent default behaviour of the parser.
This is always equal to 0, so that all other flags can be simply ored together. Normally there is no need to inconveniently disable flags by anding with their negated (~) values. This also means that meaning of each flag is a negation of the default setting. For example, if flag name is rapidxml::parse_no_utf8, it means that utf-8 is enabled by default, and using the flag will disable it.
See xml_document::parse() function.
Definition at line 260 of file rapidxml.hpp.
const int parse_doctype_node = 0x80 |
Parse flag instructing the parser to create DOCTYPE node.
By default, doctype node is not created. Although W3C specification allows at most one DOCTYPE node, RapidXml will silently accept documents with more than one. Can be combined with other flags by use of | operator.
See xml_document::parse() function.
Definition at line 216 of file rapidxml.hpp.
const int parse_fastest = parse_non_destructive | parse_no_data_nodes |
A combination of parse flags resulting in fastest possible parsing, without sacrificing important data.
See xml_document::parse() function.
Definition at line 275 of file rapidxml.hpp.
const int parse_full = parse_declaration_node | parse_comment_nodes | parse_doctype_node | parse_pi_nodes | parse_validate_closing_tags |
A combination of parse flags resulting in largest amount of data being extracted.
This usually results in slowest parsing.
See xml_document::parse() function.
Definition at line 281 of file rapidxml.hpp.
const int parse_no_data_nodes = 0x1 |
Parse flag instructing the parser to not create data nodes.
Text of first data node will still be placed in value of parent element, unless rapidxml::parse_no_element_values flag is also specified. Can be combined with other flags by use of | operator.
See xml_document::parse() function.
Definition at line 164 of file rapidxml.hpp.
const int parse_no_element_values = 0x2 |
Parse flag instructing the parser to not use text of first data node as a value of parent element.
Can be combined with other flags by use of | operator. Note that child data nodes of element node take precendence over its value when printing. That is, if element has one or more child data nodes and a value, the value will be ignored. Use rapidxml::parse_no_data_nodes flag to prevent creation of data nodes if you want to manipulate data using values of elements.
See xml_document::parse() function.
Definition at line 173 of file rapidxml.hpp.
const int parse_no_entity_translation = 0x8 |
Parse flag instructing the parser to not translate entities in the source text.
By default entities are translated, modifying source text. Can be combined with other flags by use of | operator.
See xml_document::parse() function.
Definition at line 187 of file rapidxml.hpp.
const int parse_no_string_terminators = 0x4 |
Parse flag instructing the parser to not place zero terminators after strings in the source text.
By default zero terminators are placed, modifying source text. Can be combined with other flags by use of | operator.
See xml_document::parse() function.
Definition at line 180 of file rapidxml.hpp.
const int parse_no_utf8 = 0x10 |
Parse flag instructing the parser to disable UTF-8 handling and assume plain 8 bit characters.
By default, UTF-8 handling is enabled. Can be combined with other flags by use of | operator.
See xml_document::parse() function.
Definition at line 194 of file rapidxml.hpp.
const int parse_non_destructive = parse_no_string_terminators | parse_no_entity_translation |
A combination of parse flags that forbids any modifications of the source text.
This also results in faster parsing. However, note that the following will occur:
See xml_document::parse() function.
Definition at line 270 of file rapidxml.hpp.
const int parse_normalize_whitespace = 0x800 |
Parse flag instructing the parser to condense all whitespace runs of data nodes to a single space character.
Trimming of leading and trailing whitespace of data is controlled by rapidxml::parse_trim_whitespace flag. By default, whitespace is not normalized. If this flag is specified, source text will be modified. Can be combined with other flags by use of | operator.
See xml_document::parse() function.
Definition at line 248 of file rapidxml.hpp.
const int parse_pi_nodes = 0x100 |
Parse flag instructing the parser to create PI nodes.
By default, PI nodes are not created. Can be combined with other flags by use of | operator.
See xml_document::parse() function.
Definition at line 223 of file rapidxml.hpp.
const int parse_trim_whitespace = 0x400 |
Parse flag instructing the parser to trim all leading and trailing whitespace of data nodes.
By default, whitespace is not trimmed. This flag does not cause the parser to modify source text. Can be combined with other flags by use of | operator.
See xml_document::parse() function.
Definition at line 239 of file rapidxml.hpp.
const int parse_validate_closing_tags = 0x200 |
Parse flag instructing the parser to validate closing tag names.
If not set, name inside closing tag is irrelevant to the parser. By default, closing tags are not validated. Can be combined with other flags by use of | operator.
See xml_document::parse() function.
Definition at line 231 of file rapidxml.hpp.
const int print_no_indenting = 0x1 |
Printer flag instructing the printer to suppress indenting of XML. See print() function.
Definition at line 24 of file rapidxml_print.hpp.