diff --git a/docs/html/annotated.html b/docs/html/annotated.html deleted file mode 100644 index 9ff9539..0000000 --- a/docs/html/annotated.html +++ /dev/null @@ -1,42 +0,0 @@ - -
-pugi::transfer_ownership_tag | Struct used to distinguish parsing with ownership transfer from parsing without it |
pugi::xml_attribute | A light-weight wrapper for manipulating attributes in DOM tree |
pugi::xml_attribute_iterator | Attribute iterator |
pugi::xml_document | Document class (DOM tree root) |
pugi::xml_node | A light-weight wrapper for manipulating nodes in DOM tree |
pugi::xml_node_iterator | Child node iterator |
pugi::xml_parse_result | Parser result |
pugi::xml_tree_walker | Abstract tree walker class |
pugi::xml_writer | Abstract writer class |
pugi::xml_writer_file | Xml_writer implementation for FILE* |
pugi::xml_writer_stream | Xml_writer implementation for streams |
pugi::xpath_exception | XPath exception class |
pugi::xpath_node | XPath node class |
pugi::xpath_node_set | Not necessarily ordered constant collection of XPath nodes |
pugi::xpath_query | A class that holds compiled XPath query and allows to evaluate query result |
-Note: xml_attribute does not allocate any memory for the attribute it wraps; it only wraps a pointer to existing attribute. -
-
Public Member Functions | |
xml_attribute () | |
Default ctor. | |
operator unspecified_bool_type () const | |
Safe bool conversion. | |
-bool | operator! () const |
bool | operator== (const xml_attribute &r) const |
Compare wrapped pointer to the attribute to the pointer that is wrapped by r. | |
bool | operator!= (const xml_attribute &r) const |
Compare wrapped pointer to the attribute to the pointer that is wrapped by r. | |
bool | operator< (const xml_attribute &r) const |
Compare wrapped pointer to the attribute to the pointer that is wrapped by r. | |
bool | operator> (const xml_attribute &r) const |
Compare wrapped pointer to the attribute to the pointer that is wrapped by r. | |
bool | operator<= (const xml_attribute &r) const |
Compare wrapped pointer to the attribute to the pointer that is wrapped by r. | |
bool | operator>= (const xml_attribute &r) const |
Compare wrapped pointer to the attribute to the pointer that is wrapped by r. | |
xml_attribute | next_attribute () const |
Get next attribute in attribute list of node that contains the attribute. | |
xml_attribute | previous_attribute () const |
Get previous attribute in attribute list of node that contains the attribute. | |
int | as_int () const |
Cast attribute value as int. | |
unsigned int | as_uint () const |
Cast attribute value as unsigned int. | |
double | as_double () const |
Cast attribute value as double. | |
float | as_float () const |
Cast attribute value as float. | |
bool | as_bool () const |
Cast attribute value as bool. | |
-PUGIXML_DEPRECATED unsigned -int | document_order () const |
xml_attribute & | operator= (const char_t *rhs) |
Set attribute value to rhs. | |
xml_attribute & | operator= (int rhs) |
Set attribute value to rhs. | |
xml_attribute & | operator= (unsigned int rhs) |
Set attribute value to rhs. | |
xml_attribute & | operator= (double rhs) |
Set attribute value to rhs. | |
xml_attribute & | operator= (bool rhs) |
Set attribute value to either 'true' or 'false' (depends on whether rhs is true or false). | |
bool | set_name (const char_t *rhs) |
Set attribute name to rhs. | |
bool | set_value (const char_t *rhs) |
Set attribute value to rhs. | |
bool | set_value (int rhs) |
Set attribute value to rhs. | |
bool | set_value (unsigned int rhs) |
Set attribute value to rhs. | |
bool | set_value (double rhs) |
Set attribute value to rhs. | |
bool | set_value (bool rhs) |
Set attribute value to either 'true' or 'false' (depends on whether rhs is true or false). | |
bool | empty () const |
Check if attribute is empty. | |
const char_t * | name () const |
Get attribute name. | |
const char_t * | value () const |
Get attribute value. | |
Friends | |
-class | xml_attribute_iterator |
-class | xml_node |
-
-
|
-
- - | -
-
- -Default ctor. - -Constructs an empty attribute. |
-
-
-
|
-
- - | -
-
- -Safe bool conversion. - -Allows xml_node to be used in a context where boolean variable is expected, such as 'if (node)'. |
-
-
-
|
-
- - | -
-
- -Compare wrapped pointer to the attribute to the pointer that is wrapped by r. - -
|
-
-
-
|
-
- - | -
-
- -Compare wrapped pointer to the attribute to the pointer that is wrapped by r. - -
|
-
-
-
|
-
- - | -
-
- -Compare wrapped pointer to the attribute to the pointer that is wrapped by r. - -
|
-
-
-
|
-
- - | -
-
- -Compare wrapped pointer to the attribute to the pointer that is wrapped by r. - -
|
-
-
-
|
-
- - | -
-
- -Compare wrapped pointer to the attribute to the pointer that is wrapped by r. - -
|
-
-
-
|
-
- - | -
-
- -Compare wrapped pointer to the attribute to the pointer that is wrapped by r. - -
|
-
-
-
|
-
- - | -
-
- -Get next attribute in attribute list of node that contains the attribute. - -
|
-
-
-
|
-
- - | -
-
- -Get previous attribute in attribute list of node that contains the attribute. - -
|
-
-
-
|
-
- - | -
-
- -Cast attribute value as int. - -
|
-
-
-
|
-
- - | -
-
- -Cast attribute value as unsigned int. - -
|
-
-
-
|
-
- - | -
-
- -Cast attribute value as double. - -
|
-
-
-
|
-
- - | -
-
- -Cast attribute value as float. - -
|
-
-
-
|
-
- - | -
-
- -Cast attribute value as bool. - -Returns true for attributes with values that start with '1', 't', 'T', 'y', 'Y', returns false for other attributes. -
|
-
-
-
|
-
- - | -
-
- -Set attribute value to rhs. - -
|
-
-
-
|
-
- - | -
-
- -Set attribute value to rhs. - -
|
-
-
-
|
-
- - | -
-
- -Set attribute value to rhs. - -
|
-
-
-
|
-
- - | -
-
- -Set attribute value to rhs. - -
|
-
-
-
|
-
- - | -
-
- -Set attribute value to either 'true' or 'false' (depends on whether rhs is true or false). - -
|
-
-
-
|
-
- - | -
-
- -Set attribute name to rhs. - -
|
-
-
-
|
-
- - | -
-
- -Set attribute value to rhs. - -
|
-
-
-
|
-
- - | -
-
- -Set attribute value to rhs. - -
|
-
-
-
|
-
- - | -
-
- -Set attribute value to rhs. - -
|
-
-
-
|
-
- - | -
-
- -Set attribute value to rhs. - -
|
-
-
-
|
-
- - | -
-
- -Set attribute value to either 'true' or 'false' (depends on whether rhs is true or false). - -
|
-
-
-
|
-
- - | -
-
- -Check if attribute is empty. - -
|
-
-
-
|
-
- - | -
-
- -Get attribute name. - -
|
-
-
-
|
-
- - | -
-
- -Get attribute value. - -
|
-
-It's a bidirectional iterator with value type 'xml_attribute'. -
-
Public Types | |
-typedef ptrdiff_t | difference_type |
Iterator traits. | |
-typedef xml_attribute | value_type |
-typedef xml_attribute * | pointer |
-typedef xml_attribute & | reference |
-typedef std::bidirectional_iterator_tag | iterator_category |
Public Member Functions | |
- | xml_attribute_iterator () |
Default ctor. | |
xml_attribute_iterator (const xml_attribute &node) | |
Initializing ctor. | |
bool | operator== (const xml_attribute_iterator &rhs) const |
Check if this iterator is equal to rhs. | |
bool | operator!= (const xml_attribute_iterator &rhs) const |
Check if this iterator is not equal to rhs. | |
xml_attribute & | operator * () |
Dereferencing operator. | |
xml_attribute * | operator-> () |
Member access operator. | |
const xml_attribute_iterator & | operator++ () |
Pre-increment operator. | |
xml_attribute_iterator | operator++ (int) |
Post-increment operator. | |
const xml_attribute_iterator & | operator-- () |
Pre-decrement operator. | |
xml_attribute_iterator | operator-- (int) |
Post-decrement operator. | |
Friends | |
-class | xml_node |
-
-
|
-
- - | -
-
- -Initializing ctor. - -
|
-
-
-
|
-
- - | -
-
- -Check if this iterator is equal to rhs. - -
|
-
-
-
|
-
- - | -
-
- -Check if this iterator is not equal to rhs. - -
|
-
-
-
|
-
- - | -
-
- -Dereferencing operator. - -
|
-
-
-
|
-
- - | -
-
- -Member access operator. - -
|
-
-
-
|
-
- - | -
-
- -Pre-increment operator. - -
|
-
-
-
|
-
- - | -
-
- -Post-increment operator. - -
|
-
-
-
|
-
- - | -
-
- -Pre-decrement operator. - -
|
-
-
-
|
-
- - | -
-
- -Post-decrement operator. - -
|
-
_root (defined in pugi::xml_node) | pugi::xml_node | [protected] |
all_elements_by_name(const char_t *name, OutputIterator it) const | pugi::xml_node | [inline] |
all_elements_by_name_w(const char_t *name, OutputIterator it) const | pugi::xml_node | [inline] |
append_attribute(const char_t *name) | pugi::xml_node | |
append_child(xml_node_type type=node_element) | pugi::xml_node | |
append_copy(const xml_attribute &proto) | pugi::xml_node | |
append_copy(const xml_node &proto) | pugi::xml_node | |
attribute(const char_t *name) const | pugi::xml_node | |
attribute_iterator typedef | pugi::xml_node | |
attribute_w(const char_t *name) const | pugi::xml_node | |
attributes_begin() const | pugi::xml_node | |
attributes_end() const | pugi::xml_node | |
begin() const | pugi::xml_node | |
child(const char_t *name) const | pugi::xml_node | |
child_value() const | pugi::xml_node | |
child_value(const char_t *name) const | pugi::xml_node | |
child_value_w(const char_t *name) const | pugi::xml_node | |
child_w(const char_t *name) const | pugi::xml_node | |
document_order() const (defined in pugi::xml_node) | pugi::xml_node | |
empty() const | pugi::xml_node | |
end() const | pugi::xml_node | |
find_attribute(Predicate pred) const | pugi::xml_node | [inline] |
find_child(Predicate pred) const | pugi::xml_node | [inline] |
find_child_by_attribute(const char_t *name, const char_t *attr_name, const char_t *attr_value) const | pugi::xml_node | |
find_child_by_attribute(const char_t *attr_name, const char_t *attr_value) const | pugi::xml_node | |
find_child_by_attribute_w(const char_t *name, const char_t *attr_name, const char_t *attr_value) const | pugi::xml_node | |
find_child_by_attribute_w(const char_t *attr_name, const char_t *attr_value) const | pugi::xml_node | |
find_node(Predicate pred) const | pugi::xml_node | [inline] |
first_attribute() const | pugi::xml_node | |
first_child() const | pugi::xml_node | |
first_element_by_path(const char_t *path, char_t delimiter= '/') const | pugi::xml_node | |
insert_attribute_after(const char_t *name, const xml_attribute &attr) | pugi::xml_node | |
insert_attribute_before(const char_t *name, const xml_attribute &attr) | pugi::xml_node | |
insert_child_after(xml_node_type type, const xml_node &node) | pugi::xml_node | |
insert_child_before(xml_node_type type, const xml_node &node) | pugi::xml_node | |
insert_copy_after(const xml_attribute &proto, const xml_attribute &attr) | pugi::xml_node | |
insert_copy_after(const xml_node &proto, const xml_node &node) | pugi::xml_node | |
insert_copy_before(const xml_attribute &proto, const xml_attribute &attr) | pugi::xml_node | |
insert_copy_before(const xml_node &proto, const xml_node &node) | pugi::xml_node | |
iterator typedef | pugi::xml_node | |
last_attribute() const | pugi::xml_node | |
last_child() const | pugi::xml_node | |
load(std::basic_istream< char, std::char_traits< char > > &stream, unsigned int options=parse_default, encoding_t encoding=encoding_auto) | pugi::xml_document | |
load(std::basic_istream< wchar_t, std::char_traits< wchar_t > > &stream, unsigned int options=parse_default) | pugi::xml_document | |
load(const char_t *contents, unsigned int options=parse_default) | pugi::xml_document | |
load_buffer(const void *contents, size_t size, unsigned int options=parse_default, encoding_t encoding=encoding_auto) | pugi::xml_document | |
load_buffer_inplace(void *contents, size_t size, unsigned int options=parse_default, encoding_t encoding=encoding_auto) | pugi::xml_document | |
load_buffer_inplace_own(void *contents, size_t size, unsigned int options=parse_default, encoding_t encoding=encoding_auto) | pugi::xml_document | |
load_file(const char *name, unsigned int options=parse_default, encoding_t encoding=encoding_auto) | pugi::xml_document | |
name() const | pugi::xml_node | |
next_sibling(const char_t *name) const | pugi::xml_node | |
next_sibling() const | pugi::xml_node | |
next_sibling_w(const char_t *name) const | pugi::xml_node | |
offset_debug() const | pugi::xml_node | |
operator unspecified_bool_type() const | pugi::xml_node | |
operator!() const (defined in pugi::xml_node) | pugi::xml_node | |
operator!=(const xml_node &r) const | pugi::xml_node | |
operator<(const xml_node &r) const | pugi::xml_node | |
operator<=(const xml_node &r) const | pugi::xml_node | |
operator==(const xml_node &r) const | pugi::xml_node | |
operator>(const xml_node &r) const | pugi::xml_node | |
operator>=(const xml_node &r) const | pugi::xml_node | |
parent() const | pugi::xml_node | |
parse(char *xmlstr, unsigned int options=parse_default) | pugi::xml_document | |
parse(const transfer_ownership_tag &, char *xmlstr, unsigned int options=parse_default) | pugi::xml_document | |
path(char_t delimiter= '/') const | pugi::xml_node | |
precompute_document_order() | pugi::xml_document | |
previous_sibling(const char_t *name) const | pugi::xml_node | |
previous_sibling() const | pugi::xml_node | |
previous_sibling_w(const char_t *name) const | pugi::xml_node | |
print(xml_writer &writer, const char_t *indent=PUGIXML_TEXT("\t"), unsigned int flags=format_default, encoding_t encoding=encoding_auto, unsigned int depth=0) const | pugi::xml_node | |
print(std::basic_ostream< char, std::char_traits< char > > &os, const char_t *indent=PUGIXML_TEXT("\t"), unsigned int flags=format_default, encoding_t encoding=encoding_auto, unsigned int depth=0) const | pugi::xml_node | |
print(std::basic_ostream< wchar_t, std::char_traits< wchar_t > > &os, const char_t *indent=PUGIXML_TEXT("\t"), unsigned int flags=format_default, unsigned int depth=0) const | pugi::xml_node | |
remove_attribute(const xml_attribute &a) | pugi::xml_node | |
remove_attribute(const char_t *name) | pugi::xml_node | |
remove_child(const xml_node &n) | pugi::xml_node | |
remove_child(const char_t *name) | pugi::xml_node | |
root() const | pugi::xml_node | |
save(xml_writer &writer, const char_t *indent=PUGIXML_TEXT("\t"), unsigned int flags=format_default, encoding_t encoding=encoding_auto) const | pugi::xml_document | |
save(std::basic_ostream< char, std::char_traits< char > > &stream, const char_t *indent=PUGIXML_TEXT("\t"), unsigned int flags=format_default, encoding_t encoding=encoding_auto) const | pugi::xml_document | |
save(std::basic_ostream< wchar_t, std::char_traits< wchar_t > > &stream, const char_t *indent=PUGIXML_TEXT("\t"), unsigned int flags=format_default) const | pugi::xml_document | |
save_file(const char *name, const char_t *indent=PUGIXML_TEXT("\t"), unsigned int flags=format_default, encoding_t encoding=encoding_auto) const | pugi::xml_document | |
select_nodes(const char_t *query) const | pugi::xml_node | |
select_nodes(const xpath_query &query) const | pugi::xml_node | |
select_single_node(const char_t *query) const | pugi::xml_node | |
select_single_node(const xpath_query &query) const | pugi::xml_node | |
set_name(const char_t *rhs) | pugi::xml_node | |
set_value(const char_t *rhs) | pugi::xml_node | |
traverse(xml_tree_walker &walker) | pugi::xml_node | |
type() const | pugi::xml_node | |
unspecified_bool_type typedef (defined in pugi::xml_node) | pugi::xml_node | [protected] |
value() const | pugi::xml_node | |
xml_document() | pugi::xml_document | |
xml_node(xml_node_struct *p) (defined in pugi::xml_node) | pugi::xml_node | [explicit, protected] |
xml_node() | pugi::xml_node | |
~xml_document() | pugi::xml_document |
-This class has noncopyable semantics (private copy ctor/assignment operator). -
-
Public Member Functions | |
- | xml_document () |
Default ctor, makes empty document. | |
- | ~xml_document () |
Dtor. | |
xml_parse_result | load (std::basic_istream< char, std::char_traits< char > > &stream, unsigned int options=parse_default, encoding_t encoding=encoding_auto) |
Load document from stream. | |
xml_parse_result | load (std::basic_istream< wchar_t, std::char_traits< wchar_t > > &stream, unsigned int options=parse_default) |
Load document from stream. | |
xml_parse_result | load (const char_t *contents, unsigned int options=parse_default) |
Load document from string. | |
PUGIXML_DEPRECATED xml_parse_result | parse (char *xmlstr, unsigned int options=parse_default) |
Parse the given XML string in-situ. | |
PUGIXML_DEPRECATED xml_parse_result | parse (const transfer_ownership_tag &, char *xmlstr, unsigned int options=parse_default) |
Parse the given XML string in-situ (gains ownership). | |
xml_parse_result | load_file (const char *name, unsigned int options=parse_default, encoding_t encoding=encoding_auto) |
Load document from file. | |
xml_parse_result | load_buffer (const void *contents, size_t size, unsigned int options=parse_default, encoding_t encoding=encoding_auto) |
Load document from buffer. | |
xml_parse_result | load_buffer_inplace (void *contents, size_t size, unsigned int options=parse_default, encoding_t encoding=encoding_auto) |
Load document from buffer in-situ. | |
xml_parse_result | load_buffer_inplace_own (void *contents, size_t size, unsigned int options=parse_default, encoding_t encoding=encoding_auto) |
Load document from buffer in-situ (gains buffer ownership). | |
void | save (xml_writer &writer, const char_t *indent=PUGIXML_TEXT("\t"), unsigned int flags=format_default, encoding_t encoding=encoding_auto) const |
Save XML to writer. | |
void | save (std::basic_ostream< char, std::char_traits< char > > &stream, const char_t *indent=PUGIXML_TEXT("\t"), unsigned int flags=format_default, encoding_t encoding=encoding_auto) const |
Save XML to stream. | |
void | save (std::basic_ostream< wchar_t, std::char_traits< wchar_t > > &stream, const char_t *indent=PUGIXML_TEXT("\t"), unsigned int flags=format_default) const |
Save XML to stream. | |
bool | save_file (const char *name, const char_t *indent=PUGIXML_TEXT("\t"), unsigned int flags=format_default, encoding_t encoding=encoding_auto) const |
Save XML to file. | |
-PUGIXML_DEPRECATED void | precompute_document_order () |
Compute document order for the whole tree Sometimes this makes evaluation of XPath queries faster. |
-
-
|
-
- - | -
-
- -Load document from stream. - -
|
-
-
-
|
-
- - | -
-
- -Load document from stream. - -
|
-
-
-
|
-
- - | -
-
- -Load document from string. - -String has to be zero-terminated. No encoding conversions are applied. -
|
-
-
-
|
-
- - | -
-
- -Parse the given XML string in-situ. - -The string is modified; you should ensure that string data will persist throughout the document's lifetime. Although, document does not gain ownership over the string, so you should free the memory occupied by it manually. -
|
-
-
-
|
-
- - | -
-
- -Parse the given XML string in-situ (gains ownership). - -The string is modified; document gains ownership over the string, so you don't have to worry about it's lifetime. Call example: doc.parse(transfer_ownership_tag(), string, options); -
|
-
-
-
|
-
- - | -
-
- -Load document from file. - -
|
-
-
-
|
-
- - | -
-
- -Load document from buffer. - -
|
-
-
-
|
-
- - | -
-
- -Load document from buffer in-situ. - -The buffer is modified; you should ensure that buffer data will persist throughout the document's lifetime. Document does not gain ownership over the buffer, so you should free the buffer memory manually. -
|
-
-
-
|
-
- - | -
-
- -Load document from buffer in-situ (gains buffer ownership). - -The buffer is modified; you should ensure that buffer data will persist throughout the document's lifetime. Document gains ownership over the buffer, so you should allocate the buffer with pugixml allocation function. -
|
-
-
-
|
-
- - | -
-
- -Save XML to writer. - -
|
-
-
-
|
-
- - | -
-
- -Save XML to stream. - -
|
-
-
-
|
-
- - | -
-
- -Save XML to stream. - -
|
-
-
-
|
-
- - | -
-
- -Save XML to file. - -
|
-
_root (defined in pugi::xml_node) | pugi::xml_node | [protected] |
all_elements_by_name(const char_t *name, OutputIterator it) const | pugi::xml_node | [inline] |
all_elements_by_name_w(const char_t *name, OutputIterator it) const | pugi::xml_node | [inline] |
append_attribute(const char_t *name) | pugi::xml_node | |
append_child(xml_node_type type=node_element) | pugi::xml_node | |
append_copy(const xml_attribute &proto) | pugi::xml_node | |
append_copy(const xml_node &proto) | pugi::xml_node | |
attribute(const char_t *name) const | pugi::xml_node | |
attribute_iterator typedef | pugi::xml_node | |
attribute_w(const char_t *name) const | pugi::xml_node | |
attributes_begin() const | pugi::xml_node | |
attributes_end() const | pugi::xml_node | |
begin() const | pugi::xml_node | |
child(const char_t *name) const | pugi::xml_node | |
child_value() const | pugi::xml_node | |
child_value(const char_t *name) const | pugi::xml_node | |
child_value_w(const char_t *name) const | pugi::xml_node | |
child_w(const char_t *name) const | pugi::xml_node | |
document_order() const (defined in pugi::xml_node) | pugi::xml_node | |
empty() const | pugi::xml_node | |
end() const | pugi::xml_node | |
find_attribute(Predicate pred) const | pugi::xml_node | [inline] |
find_child(Predicate pred) const | pugi::xml_node | [inline] |
find_child_by_attribute(const char_t *name, const char_t *attr_name, const char_t *attr_value) const | pugi::xml_node | |
find_child_by_attribute(const char_t *attr_name, const char_t *attr_value) const | pugi::xml_node | |
find_child_by_attribute_w(const char_t *name, const char_t *attr_name, const char_t *attr_value) const | pugi::xml_node | |
find_child_by_attribute_w(const char_t *attr_name, const char_t *attr_value) const | pugi::xml_node | |
find_node(Predicate pred) const | pugi::xml_node | [inline] |
first_attribute() const | pugi::xml_node | |
first_child() const | pugi::xml_node | |
first_element_by_path(const char_t *path, char_t delimiter= '/') const | pugi::xml_node | |
insert_attribute_after(const char_t *name, const xml_attribute &attr) | pugi::xml_node | |
insert_attribute_before(const char_t *name, const xml_attribute &attr) | pugi::xml_node | |
insert_child_after(xml_node_type type, const xml_node &node) | pugi::xml_node | |
insert_child_before(xml_node_type type, const xml_node &node) | pugi::xml_node | |
insert_copy_after(const xml_attribute &proto, const xml_attribute &attr) | pugi::xml_node | |
insert_copy_after(const xml_node &proto, const xml_node &node) | pugi::xml_node | |
insert_copy_before(const xml_attribute &proto, const xml_attribute &attr) | pugi::xml_node | |
insert_copy_before(const xml_node &proto, const xml_node &node) | pugi::xml_node | |
iterator typedef | pugi::xml_node | |
last_attribute() const | pugi::xml_node | |
last_child() const | pugi::xml_node | |
name() const | pugi::xml_node | |
next_sibling(const char_t *name) const | pugi::xml_node | |
next_sibling() const | pugi::xml_node | |
next_sibling_w(const char_t *name) const | pugi::xml_node | |
offset_debug() const | pugi::xml_node | |
operator unspecified_bool_type() const | pugi::xml_node | |
operator!() const (defined in pugi::xml_node) | pugi::xml_node | |
operator!=(const xml_node &r) const | pugi::xml_node | |
operator<(const xml_node &r) const | pugi::xml_node | |
operator<=(const xml_node &r) const | pugi::xml_node | |
operator==(const xml_node &r) const | pugi::xml_node | |
operator>(const xml_node &r) const | pugi::xml_node | |
operator>=(const xml_node &r) const | pugi::xml_node | |
parent() const | pugi::xml_node | |
path(char_t delimiter= '/') const | pugi::xml_node | |
previous_sibling(const char_t *name) const | pugi::xml_node | |
previous_sibling() const | pugi::xml_node | |
previous_sibling_w(const char_t *name) const | pugi::xml_node | |
print(xml_writer &writer, const char_t *indent=PUGIXML_TEXT("\t"), unsigned int flags=format_default, encoding_t encoding=encoding_auto, unsigned int depth=0) const | pugi::xml_node | |
print(std::basic_ostream< char, std::char_traits< char > > &os, const char_t *indent=PUGIXML_TEXT("\t"), unsigned int flags=format_default, encoding_t encoding=encoding_auto, unsigned int depth=0) const | pugi::xml_node | |
print(std::basic_ostream< wchar_t, std::char_traits< wchar_t > > &os, const char_t *indent=PUGIXML_TEXT("\t"), unsigned int flags=format_default, unsigned int depth=0) const | pugi::xml_node | |
remove_attribute(const xml_attribute &a) | pugi::xml_node | |
remove_attribute(const char_t *name) | pugi::xml_node | |
remove_child(const xml_node &n) | pugi::xml_node | |
remove_child(const char_t *name) | pugi::xml_node | |
root() const | pugi::xml_node | |
select_nodes(const char_t *query) const | pugi::xml_node | |
select_nodes(const xpath_query &query) const | pugi::xml_node | |
select_single_node(const char_t *query) const | pugi::xml_node | |
select_single_node(const xpath_query &query) const | pugi::xml_node | |
set_name(const char_t *rhs) | pugi::xml_node | |
set_value(const char_t *rhs) | pugi::xml_node | |
traverse(xml_tree_walker &walker) | pugi::xml_node | |
type() const | pugi::xml_node | |
unspecified_bool_type typedef (defined in pugi::xml_node) | pugi::xml_node | [protected] |
value() const | pugi::xml_node | |
xml_node(xml_node_struct *p) (defined in pugi::xml_node) | pugi::xml_node | [explicit, protected] |
xml_node() | pugi::xml_node | |
xml_node_iterator (defined in pugi::xml_node) | pugi::xml_node | [friend] |
-Note: xml_node does not allocate any memory for the node it wraps; it only wraps a pointer to existing node. -
-
Public Types | |
typedef xml_node_iterator | iterator |
Node iterator type (for child nodes). | |
typedef xml_attribute_iterator | attribute_iterator |
Node iterator type (for child nodes). | |
Public Member Functions | |
xml_node () | |
Default ctor. | |
operator unspecified_bool_type () const | |
Safe bool conversion. | |
-bool | operator! () const |
bool | operator== (const xml_node &r) const |
Compare wrapped pointer to the attribute to the pointer that is wrapped by r. | |
bool | operator!= (const xml_node &r) const |
Compare wrapped pointer to the attribute to the pointer that is wrapped by r. | |
bool | operator< (const xml_node &r) const |
Compare wrapped pointer to the attribute to the pointer that is wrapped by r. | |
bool | operator> (const xml_node &r) const |
Compare wrapped pointer to the attribute to the pointer that is wrapped by r. | |
bool | operator<= (const xml_node &r) const |
Compare wrapped pointer to the attribute to the pointer that is wrapped by r. | |
bool | operator>= (const xml_node &r) const |
Compare wrapped pointer to the attribute to the pointer that is wrapped by r. | |
iterator | begin () const |
Access the begin iterator for this node's collection of child nodes. | |
iterator | end () const |
Access the end iterator for this node's collection of child nodes. | |
attribute_iterator | attributes_begin () const |
Access the begin iterator for this node's collection of attributes. | |
attribute_iterator | attributes_end () const |
Access the end iterator for this node's collection of attributes. | |
bool | empty () const |
Check if node is empty. | |
xml_node_type | type () const |
Get node type. | |
const char_t * | name () const |
Get node name (element name for element nodes, PI target for PI). | |
const char_t * | value () const |
Get node value (comment/PI/PCDATA/CDATA contents, depending on node type). | |
xml_node | child (const char_t *name) const |
Get child with the specified name. | |
PUGIXML_DEPRECATED xml_node | child_w (const char_t *name) const |
Get child with the name that matches specified pattern. | |
xml_attribute | attribute (const char_t *name) const |
Get attribute with the specified name. | |
PUGIXML_DEPRECATED xml_attribute | attribute_w (const char_t *name) const |
Get attribute with the name that matches specified pattern. | |
xml_node | next_sibling (const char_t *name) const |
Get first of following sibling nodes with the specified name. | |
PUGIXML_DEPRECATED xml_node | next_sibling_w (const char_t *name) const |
Get first of the following sibling nodes with the name that matches specified pattern. | |
xml_node | next_sibling () const |
Get following sibling. | |
xml_node | previous_sibling (const char_t *name) const |
Get first of preceding sibling nodes with the specified name. | |
PUGIXML_DEPRECATED xml_node | previous_sibling_w (const char_t *name) const |
Get first of the preceding sibling nodes with the name that matches specified pattern. | |
xml_node | previous_sibling () const |
Get preceding sibling. | |
xml_node | parent () const |
Get parent node. | |
xml_node | root () const |
Get root of DOM tree this node belongs to. | |
const char_t * | child_value () const |
Get child value of current node; that is, value of the first child node of type PCDATA/CDATA. | |
const char_t * | child_value (const char_t *name) const |
Get child value of child with specified name. | |
PUGIXML_DEPRECATED const char_t * | child_value_w (const char_t *name) const |
Get child value of child with name that matches the specified pattern. | |
bool | set_name (const char_t *rhs) |
Set node name to rhs (for PI/element nodes). | |
bool | set_value (const char_t *rhs) |
Set node value to rhs (for PI/PCDATA/CDATA/comment nodes). | |
xml_attribute | append_attribute (const char_t *name) |
Add attribute with specified name (for element nodes). | |
xml_attribute | insert_attribute_after (const char_t *name, const xml_attribute &attr) |
Insert attribute with specified name after attr (for element nodes). | |
xml_attribute | insert_attribute_before (const char_t *name, const xml_attribute &attr) |
Insert attribute with specified name before attr (for element nodes). | |
xml_attribute | append_copy (const xml_attribute &proto) |
Add a copy of the specified attribute (for element nodes). | |
xml_attribute | insert_copy_after (const xml_attribute &proto, const xml_attribute &attr) |
Insert a copy of the specified attribute after attr (for element nodes). | |
xml_attribute | insert_copy_before (const xml_attribute &proto, const xml_attribute &attr) |
Insert a copy of the specified attribute before attr (for element nodes). | |
xml_node | append_child (xml_node_type type=node_element) |
Add child node with specified type (for element nodes). | |
xml_node | insert_child_after (xml_node_type type, const xml_node &node) |
Insert child node with specified type after node (for element nodes). | |
xml_node | insert_child_before (xml_node_type type, const xml_node &node) |
Insert child node with specified type before node (for element nodes). | |
xml_node | append_copy (const xml_node &proto) |
Add a copy of the specified node as a child (for element nodes). | |
xml_node | insert_copy_after (const xml_node &proto, const xml_node &node) |
Insert a copy of the specified node after node (for element nodes). | |
xml_node | insert_copy_before (const xml_node &proto, const xml_node &node) |
Insert a copy of the specified node before node (for element nodes). | |
void | remove_attribute (const xml_attribute &a) |
Remove specified attribute. | |
void | remove_attribute (const char_t *name) |
Remove attribute with the specified name, if any. | |
void | remove_child (const xml_node &n) |
Remove specified child. | |
void | remove_child (const char_t *name) |
Remove child with the specified name, if any. | |
xml_attribute | first_attribute () const |
Get first attribute. | |
xml_attribute | last_attribute () const |
Get last attribute. | |
template<typename OutputIterator> | |
void | all_elements_by_name (const char_t *name, OutputIterator it) const |
Get all elements from subtree with given name. | |
template<typename OutputIterator> | |
PUGIXML_DEPRECATED void | all_elements_by_name_w (const char_t *name, OutputIterator it) const |
Get all elements from subtree with name that matches given pattern. | |
xml_node | first_child () const |
Get first child. | |
xml_node | last_child () const |
Get last child. | |
template<typename Predicate> | |
xml_attribute | find_attribute (Predicate pred) const |
Find attribute using predicate. | |
template<typename Predicate> | |
xml_node | find_child (Predicate pred) const |
Find child node using predicate. | |
template<typename Predicate> | |
xml_node | find_node (Predicate pred) const |
Find node from subtree using predicate. | |
xml_node | find_child_by_attribute (const char_t *name, const char_t *attr_name, const char_t *attr_value) const |
Find child node with the specified name that has specified attribute. | |
PUGIXML_DEPRECATED xml_node | find_child_by_attribute_w (const char_t *name, const char_t *attr_name, const char_t *attr_value) const |
Find child node with the specified name that has specified attribute (use pattern matching for node name and attribute name/value). | |
xml_node | find_child_by_attribute (const char_t *attr_name, const char_t *attr_value) const |
Find child node that has specified attribute. | |
PUGIXML_DEPRECATED xml_node | find_child_by_attribute_w (const char_t *attr_name, const char_t *attr_value) const |
Find child node that has specified attribute (use pattern matching for attribute name/value). | |
string_t | path (char_t delimiter= '/') const |
Get the absolute node path from root as a text string. | |
xml_node | first_element_by_path (const char_t *path, char_t delimiter= '/') const |
Search for a node by path. | |
bool | traverse (xml_tree_walker &walker) |
Recursively traverse subtree with xml_tree_walker. | |
xpath_node | select_single_node (const char_t *query) const |
Select single node by evaluating XPath query. | |
xpath_node | select_single_node (const xpath_query &query) const |
Select single node by evaluating XPath query. | |
xpath_node_set | select_nodes (const char_t *query) const |
Select node set by evaluating XPath query. | |
xpath_node_set | select_nodes (const xpath_query &query) const |
Select node set by evaluating XPath query. | |
-PUGIXML_DEPRECATED unsigned -int | document_order () const |
void | print (xml_writer &writer, const char_t *indent=PUGIXML_TEXT("\t"), unsigned int flags=format_default, encoding_t encoding=encoding_auto, unsigned int depth=0) const |
Print subtree to writer. | |
void | print (std::basic_ostream< char, std::char_traits< char > > &os, const char_t *indent=PUGIXML_TEXT("\t"), unsigned int flags=format_default, encoding_t encoding=encoding_auto, unsigned int depth=0) const |
Print subtree to stream. | |
void | print (std::basic_ostream< wchar_t, std::char_traits< wchar_t > > &os, const char_t *indent=PUGIXML_TEXT("\t"), unsigned int flags=format_default, unsigned int depth=0) const |
Print subtree to stream. | |
ptrdiff_t | offset_debug () const |
Get node offset in parsed file/string (in bytes) for debugging purposes. | |
Protected Types | |
-typedef xml_node_struct *xml_node::* | unspecified_bool_type |
Protected Member Functions | |
- | xml_node (xml_node_struct *p) |
Protected Attributes | |
-xml_node_struct * | _root |
Friends | |
-class | xml_node_iterator |
-
-
|
-
- - | -
-
- -Node iterator type (for child nodes). - -
|
-
-
-
|
-
- - | -
-
- -Node iterator type (for child nodes). - -
|
-
-
-
|
-
- - | -
-
- -Default ctor. - -Constructs an empty node. |
-
-
-
|
-
- - | -
-
- -Safe bool conversion. - -Allows xml_node to be used in a context where boolean variable is expected, such as 'if (node)'. |
-
-
-
|
-
- - | -
-
- -Compare wrapped pointer to the attribute to the pointer that is wrapped by r. - -
|
-
-
-
|
-
- - | -
-
- -Compare wrapped pointer to the attribute to the pointer that is wrapped by r. - -
|
-
-
-
|
-
- - | -
-
- -Compare wrapped pointer to the attribute to the pointer that is wrapped by r. - -
|
-
-
-
|
-
- - | -
-
- -Compare wrapped pointer to the attribute to the pointer that is wrapped by r. - -
|
-
-
-
|
-
- - | -
-
- -Compare wrapped pointer to the attribute to the pointer that is wrapped by r. - -
|
-
-
-
|
-
- - | -
-
- -Compare wrapped pointer to the attribute to the pointer that is wrapped by r. - -
|
-
-
-
|
-
- - | -
-
- -Access the begin iterator for this node's collection of child nodes. - -
|
-
-
-
|
-
- - | -
-
- -Access the end iterator for this node's collection of child nodes. - -
|
-
-
-
|
-
- - | -
-
- -Access the begin iterator for this node's collection of attributes. - -
|
-
-
-
|
-
- - | -
-
- -Access the end iterator for this node's collection of attributes. - -
|
-
-
-
|
-
- - | -
-
- -Check if node is empty. - -
|
-
-
-
|
-
- - | -
-
- -Get node type. - -
|
-
-
-
|
-
- - | -
-
- -Get node name (element name for element nodes, PI target for PI). - -
|
-
-
-
|
-
- - | -
-
- -Get node value (comment/PI/PCDATA/CDATA contents, depending on node type). - -
|
-
-
-
|
-
- - | -
-
- -Get child with the specified name. - -
|
-
-
-
|
-
- - | -
-
- -Get child with the name that matches specified pattern. - -
|
-
-
-
|
-
- - | -
-
- -Get attribute with the specified name. - -
|
-
-
-
|
-
- - | -
-
- -Get attribute with the name that matches specified pattern. - -
|
-
-
-
|
-
- - | -
-
- -Get first of following sibling nodes with the specified name. - -
|
-
-
-
|
-
- - | -
-
- -Get first of the following sibling nodes with the name that matches specified pattern. - -
|
-
-
-
|
-
- - | -
-
- -Get following sibling. - -
|
-
-
-
|
-
- - | -
-
- -Get first of preceding sibling nodes with the specified name. - -
|
-
-
-
|
-
- - | -
-
- -Get first of the preceding sibling nodes with the name that matches specified pattern. - -
|
-
-
-
|
-
- - | -
-
- -Get preceding sibling. - -
|
-
-
-
|
-
- - | -
-
- -Get parent node. - -
|
-
-
-
|
-
- - | -
-
- -Get root of DOM tree this node belongs to. - -
|
-
-
-
|
-
- - | -
-
- -Get child value of current node; that is, value of the first child node of type PCDATA/CDATA. - -
|
-
-
-
|
-
- - | -
-
- -Get child value of child with specified name. - -
|
-
-
-
|
-
- - | -
-
- -Get child value of child with name that matches the specified pattern. - -
|
-
-
-
|
-
- - | -
-
- -Set node name to rhs (for PI/element nodes). - -
|
-
-
-
|
-
- - | -
-
- -Set node value to rhs (for PI/PCDATA/CDATA/comment nodes). - -
|
-
-
-
|
-
- - | -
-
- -Add attribute with specified name (for element nodes). - -
|
-
-
-
|
-
- - | -
-
- -Insert attribute with specified name after attr (for element nodes). - -
|
-
-
-
|
-
- - | -
-
- -Insert attribute with specified name before attr (for element nodes). - -
|
-
-
-
|
-
- - | -
-
- -Add a copy of the specified attribute (for element nodes). - -
|
-
-
-
|
-
- - | -
-
- -Insert a copy of the specified attribute after attr (for element nodes). - -
|
-
-
-
|
-
- - | -
-
- -Insert a copy of the specified attribute before attr (for element nodes). - -
|
-
-
-
|
-
- - | -
-
- -Add child node with specified type (for element nodes). - -
|
-
-
-
|
-
- - | -
-
- -Insert child node with specified type after node (for element nodes). - -
|
-
-
-
|
-
- - | -
-
- -Insert child node with specified type before node (for element nodes). - -
|
-
-
-
|
-
- - | -
-
- -Add a copy of the specified node as a child (for element nodes). - -
|
-
-
-
|
-
- - | -
-
- -Insert a copy of the specified node after node (for element nodes). - -
|
-
-
-
|
-
- - | -
-
- -Insert a copy of the specified node before node (for element nodes). - -
|
-
-
-
|
-
- - | -
-
- -Remove specified attribute. - -
|
-
-
-
|
-
- - | -
-
- -Remove attribute with the specified name, if any. - -
|
-
-
-
|
-
- - | -
-
- -Remove specified child. - -
|
-
-
-
|
-
- - | -
-
- -Remove child with the specified name, if any. - -
|
-
-
-
|
-
- - | -
-
- -Get first attribute. - -
|
-
-
-
|
-
- - | -
-
- -Get last attribute. - -
|
-
-
-
|
-
- - | -
-
- -Get all elements from subtree with given name. - -
|
-
-
-
|
-
- - | -
-
- -Get all elements from subtree with name that matches given pattern. - -
|
-
-
-
|
-
- - | -
-
- -Get first child. - -
|
-
-
-
|
-
- - | -
-
- -Get last child. - -
|
-
-
-
|
-
- - | -
-
- -Find attribute using predicate. - -
|
-
-
-
|
-
- - | -
-
- -Find child node using predicate. - -
|
-
-
-
|
-
- - | -
-
- -Find node from subtree using predicate. - -
|
-
-
-
|
-
- - | -
-
- -Find child node with the specified name that has specified attribute. - -
|
-
-
-
|
-
- - | -
-
- -Find child node with the specified name that has specified attribute (use pattern matching for node name and attribute name/value). - -
|
-
-
-
|
-
- - | -
-
- -Find child node that has specified attribute. - -
|
-
-
-
|
-
- - | -
-
- -Find child node that has specified attribute (use pattern matching for attribute name/value). - -
|
-
-
-
|
-
- - | -
-
- -Get the absolute node path from root as a text string. - -
|
-
-
-
|
-
- - | -
-
- -Search for a node by path. - -
|
-
-
-
|
-
- - | -
-
- -Recursively traverse subtree with xml_tree_walker. - - -
|
-
-
-
|
-
- - | -
-
- -Select single node by evaluating XPath query. - -
|
-
-
-
|
-
- - | -
-
- -Select single node by evaluating XPath query. - -
|
-
-
-
|
-
- - | -
-
- -Select node set by evaluating XPath query. - -
|
-
-
-
|
-
- - | -
-
- -Select node set by evaluating XPath query. - -
|
-
-
-
|
-
- - | -
-
- -Print subtree to writer. - -
|
-
-
-
|
-
- - | -
-
- -Print subtree to stream. - -
|
-
-
-
|
-
- - | -
-
- -Print subtree to stream. - -
|
-
-
-
|
-
- - | -
-
- -Get node offset in parsed file/string (in bytes) for debugging purposes. - -
|
-
difference_type typedef | pugi::xml_node_iterator | |
iterator_category typedef (defined in pugi::xml_node_iterator) | pugi::xml_node_iterator | |
operator *() | pugi::xml_node_iterator | |
operator!=(const xml_node_iterator &rhs) const | pugi::xml_node_iterator | |
operator++() | pugi::xml_node_iterator | |
operator++(int) | pugi::xml_node_iterator | |
operator--() | pugi::xml_node_iterator | |
operator--(int) | pugi::xml_node_iterator | |
operator->() | pugi::xml_node_iterator | |
operator==(const xml_node_iterator &rhs) const | pugi::xml_node_iterator | |
pointer typedef (defined in pugi::xml_node_iterator) | pugi::xml_node_iterator | |
reference typedef (defined in pugi::xml_node_iterator) | pugi::xml_node_iterator | |
value_type typedef (defined in pugi::xml_node_iterator) | pugi::xml_node_iterator | |
xml_node (defined in pugi::xml_node_iterator) | pugi::xml_node_iterator | [friend] |
xml_node_iterator() | pugi::xml_node_iterator | |
xml_node_iterator(const xml_node &node) | pugi::xml_node_iterator |
-It's a bidirectional iterator with value type 'xml_node'. -
-
Public Types | |
-typedef ptrdiff_t | difference_type |
Iterator traits. | |
-typedef xml_node | value_type |
-typedef xml_node * | pointer |
-typedef xml_node & | reference |
-typedef std::bidirectional_iterator_tag | iterator_category |
Public Member Functions | |
- | xml_node_iterator () |
Default ctor. | |
xml_node_iterator (const xml_node &node) | |
Initializing ctor. | |
bool | operator== (const xml_node_iterator &rhs) const |
Check if this iterator is equal to rhs. | |
bool | operator!= (const xml_node_iterator &rhs) const |
Check if this iterator is not equal to rhs. | |
xml_node & | operator * () |
Dereferencing operator. | |
xml_node * | operator-> () |
Member access operator. | |
const xml_node_iterator & | operator++ () |
Pre-increment operator. | |
xml_node_iterator | operator++ (int) |
Post-increment operator. | |
const xml_node_iterator & | operator-- () |
Pre-decrement operator. | |
xml_node_iterator | operator-- (int) |
Post-decrement operator. | |
Friends | |
-class | xml_node |
-
-
|
-
- - | -
-
- -Initializing ctor. - -
|
-
-
-
|
-
- - | -
-
- -Check if this iterator is equal to rhs. - -
|
-
-
-
|
-
- - | -
-
- -Check if this iterator is not equal to rhs. - -
|
-
-
-
|
-
- - | -
-
- -Dereferencing operator. - -
|
-
-
-
|
-
- - | -
-
- -Member access operator. - -
|
-
-
-
|
-
- - | -
-
- -Pre-increment operator. - -
|
-
-
-
|
-
- - | -
-
- -Post-increment operator. - -
|
-
-
-
|
-
- - | -
-
- -Pre-decrement operator. - -
|
-
-
-
|
-
- - | -
-
- -Post-decrement operator. - -
|
-
begin(xml_node &) | pugi::xml_tree_walker | [virtual] |
depth() const | pugi::xml_tree_walker | [protected] |
end(xml_node &) | pugi::xml_tree_walker | [virtual] |
for_each(xml_node &)=0 | pugi::xml_tree_walker | [pure virtual] |
xml_node (defined in pugi::xml_tree_walker) | pugi::xml_tree_walker | [friend] |
xml_tree_walker() | pugi::xml_tree_walker | |
~xml_tree_walker() | pugi::xml_tree_walker | [virtual] |
-
-
Public Member Functions | |
- | xml_tree_walker () |
Default ctor. | |
-virtual | ~xml_tree_walker () |
Virtual dtor. | |
virtual bool | begin (xml_node &) |
Callback that is called when traversal of node begins. | |
virtual bool | for_each (xml_node &)=0 |
Callback that is called for each node traversed. | |
virtual bool | end (xml_node &) |
Callback that is called when traversal of node ends. | |
Protected Member Functions | |
int | depth () const |
Get node depth. | |
Friends | |
-class | xml_node |
-
-
|
-
- - | -
-
- -Get node depth. - -
|
-
-
-
|
-
- - | -
-
- -Callback that is called when traversal of node begins. - -
|
-
-
-
|
-
- - | -
-
- -Callback that is called for each node traversed. - -
|
-
-
-
|
-
- - | -
-
- -Callback that is called when traversal of node ends. - -
|
-
write(const void *data, size_t size)=0 | pugi::xml_writer | [pure virtual] |
~xml_writer() | pugi::xml_writer | [inline, virtual] |
-
-
Public Member Functions | |
-virtual | ~xml_writer () |
Virtual dtor. | |
virtual void | write (const void *data, size_t size)=0 |
Write memory chunk into stream/file/whatever. |
-
-
|
-
- - | -
-
- -Write memory chunk into stream/file/whatever. - -
-Implemented in pugi::xml_writer_file, and pugi::xml_writer_stream. |
-
write(const void *data, size_t size) | pugi::xml_writer_file | [virtual] |
xml_writer_file(void *file) | pugi::xml_writer_file | |
~xml_writer() | pugi::xml_writer | [inline, virtual] |
-
-
Public Member Functions | |
xml_writer_file (void *file) | |
Construct writer instance. | |
virtual void | write (const void *data, size_t size) |
Write memory chunk into stream/file/whatever. |
-
-
|
-
- - | -
-
- -Construct writer instance. - -
|
-
-
-
|
-
- - | -
-
- -Write memory chunk into stream/file/whatever. - -
-Implements pugi::xml_writer. |
-
write(const void *data, size_t size) | pugi::xml_writer_stream | [virtual] |
xml_writer_stream(std::basic_ostream< char, std::char_traits< char > > &stream) | pugi::xml_writer_stream | |
xml_writer_stream(std::basic_ostream< wchar_t, std::char_traits< wchar_t > > &stream) | pugi::xml_writer_stream | |
~xml_writer() | pugi::xml_writer | [inline, virtual] |
-
-
Public Member Functions | |
xml_writer_stream (std::basic_ostream< char, std::char_traits< char > > &stream) | |
Construct writer instance. | |
xml_writer_stream (std::basic_ostream< wchar_t, std::char_traits< wchar_t > > &stream) | |
Construct writer instance. | |
virtual void | write (const void *data, size_t size) |
Write memory chunk into stream/file/whatever. |
-
-
|
-
- - | -
-
- -Construct writer instance. - -
|
-
-
-
|
-
- - | -
-
- -Construct writer instance. - -
|
-
-
-
|
-
- - | -
-
- -Write memory chunk into stream/file/whatever. - -
-Implements pugi::xml_writer. |
-
what() const | pugi::xpath_exception | [virtual] |
xpath_exception(const char *message) | pugi::xpath_exception | [explicit] |
-
Public Member Functions | |
xpath_exception (const char *message) | |
Construct exception from static error string. | |
virtual const char * | what () const throw () |
Return error message. |
-
-
|
-
- - | -
-
- -Construct exception from static error string. - -
|
-
-
-
|
-
- - | -
-
- -Return error message. - -
|
-
attribute() const | pugi::xpath_node | |
node() const | pugi::xpath_node | |
operator unspecified_bool_type() const | pugi::xpath_node | |
operator!() const (defined in pugi::xpath_node) | pugi::xpath_node | |
operator!=(const xpath_node &n) const | pugi::xpath_node | |
operator==(const xpath_node &n) const | pugi::xpath_node | |
parent() const | pugi::xpath_node | |
xpath_node() | pugi::xpath_node | |
xpath_node(const xml_node &node) | pugi::xpath_node | |
xpath_node(const xml_attribute &attribute, const xml_node &parent) | pugi::xpath_node |
-XPath defines node to be either xml_node or xml_attribute in pugixml terminology, so xpath_node is either xml_node or xml_attribute. -
-
Public Member Functions | |
- | xpath_node () |
Construct empty XPath node. | |
xpath_node (const xml_node &node) | |
Construct XPath node from XML node. | |
xpath_node (const xml_attribute &attribute, const xml_node &parent) | |
Construct XPath node from XML attribute. | |
xml_node | node () const |
Get XML node, if any. | |
xml_attribute | attribute () const |
Get XML attribute, if any. | |
xml_node | parent () const |
Get parent of contained XML attribute, if any. | |
operator unspecified_bool_type () const | |
Safe bool conversion. | |
-bool | operator! () const |
bool | operator== (const xpath_node &n) const |
Compares two XPath nodes. | |
bool | operator!= (const xpath_node &n) const |
Compares two XPath nodes. |
-
-
|
-
- - | -
-
- -Construct XPath node from XML node. - -
|
-
-
-
|
-
- - | -
-
- -Construct XPath node from XML attribute. - -
|
-
-
-
|
-
- - | -
-
- -Get XML node, if any. - -
|
-
-
-
|
-
- - | -
-
- -Get XML attribute, if any. - -
|
-
-
-
|
-
- - | -
-
- -Get parent of contained XML attribute, if any. - -
|
-
-
-
|
-
- - | -
-
- -Safe bool conversion. - -Allows xpath_node to be used in a context where boolean variable is expected, such as 'if (node)'. |
-
-
-
|
-
- - | -
-
- -Compares two XPath nodes. - -
|
-
-
-
|
-
- - | -
-
- -Compares two XPath nodes. - -
|
-
begin() const | pugi::xpath_node_set | |
const_iterator typedef | pugi::xpath_node_set | |
empty() const | pugi::xpath_node_set | |
end() const | pugi::xpath_node_set | |
first() const | pugi::xpath_node_set | |
operator=(const xpath_node_set &ns) | pugi::xpath_node_set | |
operator[](size_t index) const | pugi::xpath_node_set | |
size() const | pugi::xpath_node_set | |
sort(bool reverse=false) | pugi::xpath_node_set | |
type() const | pugi::xpath_node_set | |
type_sorted enum value | pugi::xpath_node_set | |
type_sorted_reverse enum value | pugi::xpath_node_set | |
type_t enum name | pugi::xpath_node_set | |
type_unsorted enum value | pugi::xpath_node_set | |
xpath_ast_node (defined in pugi::xpath_node_set) | pugi::xpath_node_set | [friend] |
xpath_node_set() | pugi::xpath_node_set | |
xpath_node_set(const xpath_node_set &ns) | pugi::xpath_node_set | |
~xpath_node_set() | pugi::xpath_node_set |
-
Public Types | |
-typedef const xpath_node * | const_iterator |
Constant iterator type. | |
enum | type_t { type_unsorted, -type_sorted, -type_sorted_reverse - } |
Collection type. More... | |
Public Member Functions | |
- | xpath_node_set () |
Default ctor Constructs empty set. | |
- | ~xpath_node_set () |
Dtor. | |
xpath_node_set (const xpath_node_set &ns) | |
Copy ctor. | |
xpath_node_set & | operator= (const xpath_node_set &ns) |
Assignment operator. | |
type_t | type () const |
Get collection type. | |
size_t | size () const |
Get collection size. | |
xpath_node | operator[] (size_t index) const |
Get element with the specified index. | |
const_iterator | begin () const |
Get begin constant iterator for collection. | |
const_iterator | end () const |
Get end iterator for collection. | |
void | sort (bool reverse=false) |
Sort the collection in ascending/descending order by document order. | |
xpath_node | first () const |
Get first node in the collection by document order. | |
bool | empty () const |
Return true if collection is empty. | |
Friends | |
-class | xpath_ast_node |
-
-
|
-
- - | -
-
- -Collection type. - - - |
-
-
-
|
-
- - | -
-
- -Copy ctor. - -
|
-
-
-
|
-
- - | -
-
- -Assignment operator. - -
|
-
-
-
|
-
- - | -
-
- -Get collection type. - -
|
-
-
-
|
-
- - | -
-
- -Get collection size. - -
|
-
-
-
|
-
- - | -
-
- -Get element with the specified index. - -
|
-
-
-
|
-
- - | -
-
- -Get begin constant iterator for collection. - -
|
-
-
-
|
-
- - | -
-
- -Get end iterator for collection. - -
|
-
-
-
|
-
- - | -
-
- -Sort the collection in ascending/descending order by document order. - -
|
-
-
-
|
-
- - | -
-
- -Get first node in the collection by document order. - -
|
-
-
-
|
-
- - | -
-
- -Return true if collection is empty. - -
|
-
evaluate_boolean(const xml_node &n) const | pugi::xpath_query | |
evaluate_node_set(const xml_node &n) const | pugi::xpath_query | |
evaluate_number(const xml_node &n) const | pugi::xpath_query | |
evaluate_string(const xml_node &n) const | pugi::xpath_query | |
return_type() const | pugi::xpath_query | |
xpath_query(const char_t *query) | pugi::xpath_query | [explicit] |
~xpath_query() | pugi::xpath_query |
-
Public Member Functions | |
xpath_query (const char_t *query) | |
Ctor from string with XPath expression. | |
- | ~xpath_query () |
Dtor. | |
xpath_type_t | return_type () const |
Get query expression return type. | |
bool | evaluate_boolean (const xml_node &n) const |
Evaluate expression as boolean value for the context node n. | |
double | evaluate_number (const xml_node &n) const |
Evaluate expression as double value for the context node n. | |
string_t | evaluate_string (const xml_node &n) const |
Evaluate expression as string value for the context node n. | |
xpath_node_set | evaluate_node_set (const xml_node &n) const |
Evaluate expression as node set for the context node n. |
-
-
|
-
- - | -
-
- -Ctor from string with XPath expression. - -Throws xpath_exception on compilation error, std::bad_alloc on out of memory error. -
|
-
-
-
|
-
- - | -
-
- -Get query expression return type. - -
|
-
-
-
|
-
- - | -
-
- -Evaluate expression as boolean value for the context node n. - -If expression does not directly evaluate to boolean, the expression result is converted as through boolean() XPath function call. Throws std::bad_alloc on out of memory error. -
|
-
-
-
|
-
- - | -
-
- -Evaluate expression as double value for the context node n. - -If expression does not directly evaluate to double, the expression result is converted as through number() XPath function call. Throws std::bad_alloc on out of memory error. -
|
-
-
-
|
-
- - | -
-
- -Evaluate expression as string value for the context node n. - -If expression does not directly evaluate to string, the expression result is converted as through string() XPath function call. Throws std::bad_alloc on out of memory error. -
|
-
-
-
|
-
- - | -
-
- -Evaluate expression as node set for the context node n. - -If expression does not directly evaluate to node set, throws xpath_exception. Throws std::bad_alloc on out of memory error. -
|
-
-Here is a list of all documented class members with links to the class documentation for each member: -
-
-
-
- -
-
-
-
-Consider the following example:
/*! Invisible class because of truncation */ -class Invisible { }; - -/*! Truncated class, inheritance relation is hidden */ -class Truncated : public Invisible { }; - -/* Class not documented with doxygen comments */ -class Undocumented { }; - -/*! Class that is inherited using public inheritance */ -class PublicBase : public Truncated { }; - -/*! A template class */ -template<class T> class Templ { }; - -/*! Class that is inherited using protected inheritance */ -class ProtectedBase { }; - -/*! Class that is inherited using private inheritance */ -class PrivateBase { }; - -/*! Class that is used by the Inherited class */ -class Used { }; - -/*! Super class that inherits a number of other classes */ -class Inherited : public PublicBase, - protected ProtectedBase, - private PrivateBase, - public Undocumented - public Templ<int> -{ - private: - Used *m_usedClass; -}; -
MAX_DOT_GRAPH_HEIGHT
tag in the configuration file is set to 240 this will result in the following graph:-
-The boxes in the above graph have the following meaning:
-This inheritance list is sorted roughly, but not completely, alphabetically:
-
-
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
-Here is a list of all documented namespace members with links to the namespaces they belong to: -
-
-
-- -
-
-
-
--
- -
-
Classes | |
class | xpath_query |
A class that holds compiled XPath query and allows to evaluate query result. More... | |
class | xml_writer |
Abstract writer class. More... | |
class | xml_writer_file |
xml_writer implementation for FILE* More... | |
class | xml_writer_stream |
xml_writer implementation for streams More... | |
class | xml_attribute |
A light-weight wrapper for manipulating attributes in DOM tree. More... | |
class | xml_node |
A light-weight wrapper for manipulating nodes in DOM tree. More... | |
class | xml_node_iterator |
Child node iterator. More... | |
class | xml_attribute_iterator |
Attribute iterator. More... | |
class | xml_tree_walker |
Abstract tree walker class. More... | |
struct | transfer_ownership_tag |
Struct used to distinguish parsing with ownership transfer from parsing without it. More... | |
struct | xml_parse_result |
Parser result. More... | |
class | xml_document |
Document class (DOM tree root). More... | |
class | xpath_exception |
XPath exception class. More... | |
class | xpath_node |
XPath node class. More... | |
class | xpath_node_set |
Not necessarily ordered constant collection of XPath nodes. More... | |
Typedefs | |
-typedef char | char_t |
Character type used for all internal storage and operations; depends on PUGIXML_WCHAR_MODE. | |
-typedef std::basic_string< - char, std::char_traits< char >, - std::allocator< char > > | string_t |
String type used for operations that work with STL string; depends on PUGIXML_WCHAR_MODE. | |
typedef void *(* | allocation_function )(size_t size) |
Memory allocation function. | |
typedef void(* | deallocation_function )(void *ptr) |
Memory deallocation function. | |
Enumerations | |
enum | xml_node_type { - node_null, -node_document, -node_element, -node_pcdata, - - node_cdata, -node_comment, -node_pi, -node_declaration - - } |
Tree node classification. More... | |
enum | encoding_t { - encoding_auto, -encoding_utf8, -encoding_utf16_le, -encoding_utf16_be, - - encoding_utf16, -encoding_utf32_le, -encoding_utf32_be, -encoding_utf32, - - encoding_wchar - - } |
These flags determine the encoding of input data for XML document. More... | |
enum | xpath_type_t { - xpath_type_none, -xpath_type_node_set, -xpath_type_number, -xpath_type_string, - - xpath_type_boolean - - } |
XPath query return type classification. More... | |
enum | xml_parse_status { - status_ok = 0, -status_file_not_found, -status_io_error, -status_out_of_memory, - - status_internal_error, -status_unrecognized_tag, -status_bad_pi, -status_bad_comment, - - status_bad_cdata, -status_bad_doctype, -status_bad_pcdata, -status_bad_start_element, - - status_bad_attribute, -status_bad_end_element, -status_end_element_mismatch - - } |
Parsing status enumeration, returned as part of xml_parse_result struct. More... | |
Functions | |
std::basic_string< char, std::char_traits< - char >, std::allocator< char -> > PUGIXML_FUNCTION | as_utf8 (const wchar_t *str) |
Convert wide string to utf8. | |
PUGIXML_DEPRECATED std::basic_string< - wchar_t, std::char_traits< - wchar_t >, std::allocator< - wchar_t > > PUGIXML_FUNCTION | as_utf16 (const char *str) |
Convert utf8 to wide string. | |
std::basic_string< wchar_t, - std::char_traits< wchar_t >, - std::allocator< wchar_t -> > PUGIXML_FUNCTION | as_wide (const char *str) |
Convert utf8 to wide string. | |
void PUGIXML_FUNCTION | set_memory_management_functions (allocation_function allocate, deallocation_function deallocate) |
Override default memory management functions. | |
allocation_function PUGIXML_FUNCTION | get_memory_allocation_function () |
Get current memory allocation function. | |
deallocation_function PUGIXML_FUNCTION | get_memory_deallocation_function () |
Get current memory deallocation function. | |
Variables | |
const unsigned int | parse_minimal = 0x0000 |
Minimal parsing mode. | |
const unsigned int | parse_pi = 0x0001 |
This flag determines if processing instructions (nodes with type node_pi; such nodes have the form of <? target content ?> or <? target ?> in XML) are to be put in DOM tree. | |
const unsigned int | parse_comments = 0x0002 |
This flag determines if comments (nodes with type node_comment; such nodes have the form of in XML) are to be put in DOM tree. | |
const unsigned int | parse_cdata = 0x0004 |
This flag determines if CDATA sections (nodes with type node_cdata; such nodes have the form of <![CDATA[[content]]> in XML) are to be put in DOM tree. | |
const unsigned int | parse_ws_pcdata = 0x0008 |
This flag determines if nodes with PCDATA (regular text) that consist only of whitespace characters are to be put in DOM tree. | |
const unsigned int | parse_escapes = 0x0010 |
This flag determines if character and entity references are to be expanded during the parsing process. | |
const unsigned int | parse_eol = 0x0020 |
This flag determines if EOL handling (that is, replacing sequences 0x0d 0x0a by a single 0x0a character, and replacing all standalone 0x0d characters by 0x0a) is to be performed on input data (that is, comments contents, PCDATA/CDATA contents and attribute values). | |
PUGIXML_DEPRECATED const unsigned -int | parse_wnorm_attribute = 0x0040 |
This flag determines if attribute value normalization should be performed for all attributes. | |
const unsigned int | parse_wconv_attribute = 0x0080 |
This flag determines if attribute value normalization should be performed for all attributes. | |
const unsigned int | parse_declaration = 0x0100 |
This flag determines if XML document declaration (this node has the form of <?xml . | |
const unsigned int | parse_default = parse_cdata | parse_escapes | parse_wconv_attribute | parse_eol |
This is the default set of flags. | |
const unsigned int | format_indent = 0x01 |
Indent the nodes that are written to output stream with as many indentation strings as deep the node is in DOM tree. | |
const unsigned int | format_write_bom = 0x02 |
This flag determines if encoding-specific BOM is to be written to output stream. | |
PUGIXML_DEPRECATED const unsigned -int | format_write_bom_utf8 = format_write_bom |
const unsigned int | format_raw = 0x04 |
If this flag is on, no indentation is performed and no line breaks are written to output file. | |
const unsigned int | format_no_declaration = 0x08 |
If this flag is on, no default XML declaration is written to output file. | |
const unsigned int | format_default = format_indent |
This is the default set of formatting flags. |
-
-
|
-
- - | -
-
- -Memory allocation function. - -
|
-
-
-
|
-
- - | -
-
- -Memory deallocation function. - -
|
-
-
-
|
-
- - | -
-
- -Tree node classification. - - - |
-
-
-
|
-
-
-
|
-
- - | -
-
- -XPath query return type classification. - -
|
-
-
-
|
-
- - | -
-
- -Parsing status enumeration, returned as part of xml_parse_result struct. - -
|
-
-
-
|
-
- - | -
-
- -Convert wide string to utf8. - -
|
-
-
-
|
-
- - | -
-
- -Convert utf8 to wide string. - -
|
-
-
-
|
-
- - | -
-
- -Convert utf8 to wide string. - -
|
-
-
-
|
-
- - | -
-
- -Override default memory management functions. - -All subsequent allocations/deallocations will be performed via supplied functions. Take care not to change memory management functions if any xml_document instances are still alive - this is considered undefined behaviour (expect crashes/memory damages/etc.). -
|
-
-
-
|
-
- - | -
-
- -Get current memory allocation function. - -
|
-
-
-
|
-
- - | -
-
- -Get current memory deallocation function. - -
|
-
-
-
|
-
- - | -
-
- -Minimal parsing mode. - -Equivalent to turning all other flags off. This set of flags means that pugixml does not add pi/cdata sections or comments to DOM tree and does not perform any conversions for input data, meaning fastest parsing. |
-
-
-
|
-
- - | -
-
- -This flag determines if processing instructions (nodes with type node_pi; such nodes have the form of <? target content ?> or <? target ?> in XML) are to be put in DOM tree. - -If this flag is off, they are not put in the tree, but are still parsed and checked for correctness. -The corresponding node in DOM tree will have type node_pi, name "target" and value "content", if any. -Note that <?xml ...?> (document declaration) is not considered to be a PI. -This flag is off by default. |
-
-
-
|
-
- - | -
-
- -This flag determines if comments (nodes with type node_comment; such nodes have the form of in XML) are to be put in DOM tree. - -If this flag is off, they are not put in the tree, but are still parsed and checked for correctness. -The corresponding node in DOM tree will have type node_comment, empty name and value "content". -This flag is off by default. |
-
-
-
|
-
- - | -
-
- -This flag determines if CDATA sections (nodes with type node_cdata; such nodes have the form of <![CDATA[[content]]> in XML) are to be put in DOM tree. - -If this flag is off, they are not put in the tree, but are still parsed and checked for correctness. -The corresponding node in DOM tree will have type node_cdata, empty name and value "content". -This flag is on by default. |
-
-
-
|
-
- - | -
-
- -This flag determines if nodes with PCDATA (regular text) that consist only of whitespace characters are to be put in DOM tree. - -Often whitespace-only data is not significant for the application, and the cost of allocating and storing such nodes (both memory and speed-wise) can be significant. For example, after parsing XML string "<node> <a/> </node>", <node> element will have 3 children when parse_ws_pcdata is set (child with type node_pcdata and value=" ", child with type node_element and name "a", and another child with type node_pcdata and value=" "), and only 1 child when parse_ws_pcdata is not set. -This flag is off by default. |
-
-
-
|
-
- - | -
-
- -This flag determines if character and entity references are to be expanded during the parsing process. - -Character references are &#...; or &x...; (... is Unicode numeric representation of character in either decimal (&#...;) or hexadecimal (&x...;) form), entity references are &...; Note that as pugixml does not handle DTD, the only allowed entities are predefined ones - <, >, &, ' and ". If character/entity reference can not be expanded, it is leaved as is, so you can do additional processing later. Reference expansion is performed in attribute values and PCDATA content. -This flag is on by default. |
-
-
-
|
-
- - | -
-
- -This flag determines if EOL handling (that is, replacing sequences 0x0d 0x0a by a single 0x0a character, and replacing all standalone 0x0d characters by 0x0a) is to be performed on input data (that is, comments contents, PCDATA/CDATA contents and attribute values). - -This flag is on by default. |
-
-
-
|
-
- - | -
-
- -This flag determines if attribute value normalization should be performed for all attributes. - -This means, that: 1. Whitespace characters (new line, tab and space) are replaced with space (' ') 2. Afterwards sequences of spaces are replaced with a single space 3. Leading/trailing whitespace characters are trimmed -This flag is off by default. -
|
-
-
-
|
-
- - | -
-
- -This flag determines if attribute value normalization should be performed for all attributes. - -This means, that whitespace characters (new line, tab and space) are replaced with space (' '). Note, that the actions performed while this flag is on are also performed if parse_wnorm_attribute is on, so this flag has no effect if parse_wnorm_attribute flag is set. -This flag is on by default. |
-
-
-
|
-
- - | -
-
- -This flag determines if XML document declaration (this node has the form of <?xml . - -.. ?> in XML) are to be put in DOM tree. If this flag is off, it is not put in the tree, but is still parsed and checked for correctness. -The corresponding node in DOM tree will have type node_declaration, name "xml" and attributes, if any. -This flag is off by default. |
-
-
-
|
-
- - | -
-
- -This is the default set of flags. - -It includes parsing CDATA sections (comments/PIs are not parsed), performing character and entity reference expansion, replacing whitespace characters with spaces in attribute values and performing EOL handling. Note, that PCDATA sections consisting only of whitespace characters are not parsed (by default) for performance reasons. |
-
-
-
|
-
- - | -
-
- -Indent the nodes that are written to output stream with as many indentation strings as deep the node is in DOM tree. - -This flag is on by default. |
-
-
-
|
-
- - | -
-
- -This flag determines if encoding-specific BOM is to be written to output stream. - -This flag is off by default. |
-
-
-
|
-
- - | -
-
- -
|
-
-
-
|
-
- - | -
-
- -If this flag is on, no indentation is performed and no line breaks are written to output file. - -This means that the data is written to output stream as is. -This flag is off by default. |
-
-
-
|
-
- - | -
-
- -If this flag is on, no default XML declaration is written to output file. - -This means that there will be no XML declaration in output stream unless there was one in XML document (i.e. if it was parsed with parse_declaration flag). -This flag is off by default. |
-
-
-
|
-
- - | -
-
- -This is the default set of formatting flags. - -It includes indenting nodes depending on their depth in DOM tree. |
-
pugi | The PugiXML Parser namespace |
std | Pugixml parser - version 0.7 -------------------------------------------------------- Copyright (C) 2006-2010, by Arseny Kapoulkine (arseny.kapoulkine@gmail.com) Report bugs and download new versions at http://code.google.com/p/pugixml/ |
-This library is distributed under the MIT License. See notice at the end of this file.
-This work is based on the pugxml parser, which is: Copyright (C) 2003, by Kristen Wegner (kristen@tima.net) -
- -
- -
-
-
-
description() const | pugi::xml_parse_result | |
encoding | pugi::xml_parse_result | |
line | pugi::xml_parse_result | |
offset | pugi::xml_parse_result | |
operator bool() const | pugi::xml_parse_result | [inline] |
status | pugi::xml_parse_result |
-
Public Member Functions | |
- | operator bool () const |
Cast to bool operator. | |
-const char * | description () const |
Get error description. | |
Public Attributes | |
xml_parse_status | status |
Parsing status (. | |
-ptrdiff_t | offset |
Last parsed offset (in bytes from file/string start). | |
-unsigned int | line |
Line in parser source which reported this. | |
-encoding_t | encoding |
Source document encoding. |
-
-
|
-
- - | -
-
- -Parsing status (. - -
|
-
- pugixml documentation- |
-
pugixml is just another XML parser. This is a successor to -pugxml (well, to be honest, the only part -that is left as is is wildcard matching code; the rest was either heavily refactored or rewritten -from scratch). The main features are:
- -Okay, you might ask - what's the catch? Everything is so cute - it's small, fast, robust, clean solution -for parsing XML. What is missing? Ok, we are fair developers - so here is a misfeature list:
- -Here there is a small collection of code snippets to help the reader begin using pugixml.
- -For everything you can do with pugixml, you need a document. There are several ways to obtain it:
- --#include <fstream> -#include <iostream> - -#include "pugixml.hpp" - -using namespace std; -using namespace pugi; - -int main() -{ - // Several ways to get XML document - - { - // Load from string - xml_document doc; - - cout << doc.load("<sample-xml>some text <b>in bold</b> here</sample-xml>") << endl; - } - - { - // Load from file - xml_document doc; - - cout << doc.load_file("sample.xml") << endl; - } - - { - // Load from any input stream (STL) - xml_document doc; - - std::ifstream in("sample.xml"); - cout << doc.load(in) << endl; - } - - { - // More advanced: parse the specified string without duplicating it - xml_document doc; - - char* s = new char[100]; - strcpy(s, "<sample-xml>some text <b>in bold</b> here</sample-xml>"); - cout << doc.parse(transfer_ownership_tag(), s) << endl; - } - - { - // Even more advanced: assume manual lifetime control - xml_document doc; - - char* s = new char[100]; - strcpy(s, "<sample-xml>some text <b>in bold</b> here</sample-xml>"); - cout << doc.parse(s) << endl; - - delete[] s; // <-- after this point, all string contents of document is invalid! - } - - { - // Or just create document from code? - xml_document doc; - - // add nodes to document (see next samples) - } -} - |
_Winnie C++ Colorizer |
This sample should print a row of 1, meaning that all load/parse functions returned true (of course, if sample.xml does not exist or is malformed, there will be 0's)
- -Once you have your document, there are several ways to extract data from it.
- --#include <iostream> - -#include "pugixml.hpp" - -using namespace std; -using namespace pugi; - -struct bookstore_traverser: public xml_tree_walker -{ - virtual bool for_each(xml_node& n) - { - for (int i = 0; i < depth(); ++i) cout << " "; // indentation - - if (n.type() == node_element) cout << n.name() << endl; - else cout << n.value() << endl; - - return true; // continue traversal - } -}; - -int main() -{ - xml_document doc; - doc.load("<bookstore><book title='ShaderX'><price>3</price></book><book title='GPU Gems'><price>4</price></book></bookstore>"); - - // If you want to iterate through nodes... - - { - // Get a bookstore node - xml_node bookstore = doc.child("bookstore"); - - // Iterate through books - for (xml_node book = bookstore.child("book"); book; book = book.next_sibling("book")) - { - cout << "Book " << book.attribute("title").value() << ", price " << book.child("price").first_child().value() << endl; - } - - // Output: - // Book ShaderX, price 3 - // Book GPU Gems, price 4 - } - - { - // Alternative way to get a bookstore node (wildcards) - xml_node bookstore = doc.child_w("*[sS]tore"); // this will select bookstore, anyStore, Store, etc. - - // Iterate through books with STL compatible iterators - for (xml_node::iterator it = bookstore.begin(); it != bookstore.end(); ++it) - { - // Note the use of helper function child_value() - cout << "Book " << it->attribute("title").value() << ", price " << it->child_value("price") << endl; - } - - // Output: - // Book ShaderX, price 3 - // Book GPU Gems, price 4 - } - - { - // You can also traverse the whole tree (or a subtree) - bookstore_traverser t; - - doc.traverse(t); - - // Output: - // bookstore - // book - // price - // 3 - // book - // price - // 4 - - doc.first_child().traverse(t); - - // Output: - // book - // price - // 3 - // book - // price - // 4 - } - - // If you want a distinct node... - - { - // You can specify the way to it through child() functions - cout << doc.child("bookstore").child("book").next_sibling().attribute("title").value() << endl; - - // Output: - // GPU Gems - - // You can use a sometimes convenient path function - cout << doc.first_element_by_path("bookstore/book/price").child_value() << endl; - - // Output: - // 3 - - // And you can use powerful XPath expressions - cout << doc.select_single_node("/bookstore/book[@title = 'ShaderX']/price").node().child_value() << endl; - - // Output: - // 3 - - // Of course, XPath is much more powerful - - // Compile query that prints total price of all Gems book in store - xpath_query query("sum(/bookstore/book[contains(@title, 'Gems')]/price)"); - - cout << query.evaluate_number(doc) << endl; - - // Output: - // 4 - - // You can apply the same XPath query to any document. For example, let's add another Gems - // book (more detail about modifying tree in next sample): - xml_node book = doc.child("bookstore").append_child(); - book.set_name("book"); - book.append_attribute("title") = "Game Programming Gems 2"; - - xml_node price = book.append_child(); - price.set_name("price"); - - xml_node price_text = price.append_child(node_pcdata); - price_text.set_value("5.3"); - - // Now let's reevaluate query - cout << query.evaluate_number(doc) << endl; - - // Output: - // 9.3 - } -} - |
_Winnie C++ Colorizer |
Finally, let's get into more details about tree modification and saving.
- --#include <iostream> - -#include "pugixml.hpp" - -using namespace std; -using namespace pugi; - -int main() -{ - // For this example, we'll start with an empty document and create nodes in it from code - xml_document doc; - - // Append several children and set values/names at once - doc.append_child(node_comment).set_value("This is a test comment"); - doc.append_child().set_name("application"); - - // Let's add a few modules - xml_node application = doc.child("application"); - - // Save node wrapper for convenience - xml_node module_a = application.append_child(); - module_a.set_name("module"); - - // Add an attribute, immediately setting it's value - module_a.append_attribute("name").set_value("A"); - - // You can use operator= - module_a.append_attribute("folder") = "/work/app/module_a"; - - // Or even assign numbers - module_a.append_attribute("status") = 85.4; - - // Let's add another module - xml_node module_c = application.append_child(); - module_c.set_name("module"); - module_c.append_attribute("name") = "C"; - module_c.append_attribute("folder") = "/work/app/module_c"; - - // Oh, we missed module B. Not a problem, let's insert it before module C - xml_node module_b = application.insert_child_before(node_element, module_c); - module_b.set_name("module"); - module_b.append_attribute("folder") = "/work/app/module_b"; - - // We can do the same thing for attributes - module_b.insert_attribute_before("name", module_b.attribute("folder")) = "B"; - - // Let's add some text in module A - module_a.append_child(node_pcdata).set_value("Module A description"); - - // Well, there's not much left to do here. Let's output our document to file using several formatting options - - doc.save_file("sample_saved_1.xml"); - - // Contents of file sample_saved_1.xml (tab size = 4): - // <?xml version="1.0"?> - // <!--This is a test comment--> - // <application> - // <module name="A" folder="/work/app/module_a" status="85.4">Module A description</module> - // <module name="B" folder="/work/app/module_b" /> - // <module name="C" folder="/work/app/module_c" /> - // </application> - - // Let's use two spaces for indentation instead of tab character - doc.save_file("sample_saved_2.xml", " "); - - // Contents of file sample_saved_2.xml: - // <?xml version="1.0"?> - // <!--This is a test comment--> - // <application> - // <module name="A" folder="/work/app/module_a" status="85.4">Module A description</module> - // <module name="B" folder="/work/app/module_b" /> - // <module name="C" folder="/work/app/module_c" /> - // </application> - - // Let's save a raw XML file - doc.save_file("sample_saved_3.xml", "", format_raw); - - // Contents of file sample_saved_3.xml: - // <?xml version="1.0"?><!--This is a test comment--><application><module name="A" folder="/work/app/module_a" status="85.4">Module A description</module><module name="B" folder="/work/app/module_b" /><module name="C" folder="/work/app/module_c" /></application> - - // Finally, you can print a subtree to any output stream (including cout) - xml_writer_stream writer(cout); - doc.child("application").child("module").print(writer); - - // Output: - // <module name="A" folder="/work/app/module_a" status="85.4">Module A description</module> -} - |
_Winnie C++ Colorizer |
Note, that these examples do not cover the whole pugixml API. For further information, look into reference section.
- -pugixml is a library for parsing XML files, which means that you give it XML data some way, -and it gives you the DOM tree and the ways to traverse it and to get some useful information from it. -The library source consist of two headers, pugixml.hpp and pugiconfig.hpp, and two source -files, pugixml.cpp and pugixpath.cpp. -You can either compile cpp files in your project, or build a static library. -All library classes reside in namespace pugi, so you can either use fully qualified -names (pugi::xml_node) or write a using declaration (using namespace pugi;, using -pugi::xml_node) and use plain names. All classes have eitther xml_ or xpath_ prefix.
- -By default it's supposed that you compile the source file with your project (add it into your -project, or add relevant entry in your Makefile, or do whatever you need to do with your compilation -environment). The library is written in standard-conformant C++ and was tested on following platforms:
- --
The documentation for pugixml classes, functions and constants is available here.
- -pugixml is not a compliant XML parser. The main reason for that is that it does not reject -most malformed XML files. The more or less complete list of incompatibilities follows (I will be talking -of ones when using parse_w3c mode): - -
This table summarizes the comparison in terms of time and memory consumption between pugixml and -other parsers. For DOM parsers (all, except Expat, irrXML and SAX parser of XercesC), the process is -as follows:
- -For SAX parsers, the parse step is skipped (hence the N/A in relevant table cells), structure is -filled during 'walk' step.
- -For all parsers, 'total time' column means total time spent on the whole process, 'total allocs' - -total allocation count, 'total memory' - peak memory consumption for the whole process.
- -The tests were performed on a 1 Mb XML file with a small amount of text. They were compiled with -Microsoft Visual C++ 8.0 (2005) compiler in Release mode, with checked iterators/secure STL turned -off. The test system is AMD Sempron 2500+, 512 Mb RAM.
- -parser | -parse time | parse allocs | parse memory | -walk time | walk allocs | -total time | total allocs | total memory |
---|---|---|---|---|---|---|---|---|
irrXML | -N/A | N/A | N/A | -352 Mclocks | 697 245 | -356 Mclocks | 697 284 | 906 kb |
Expat | -N/A | N/A | N/A | -97 Mclocks | 19 | -97 Mclocks | 23 | 1028 kb |
TinyXML | -168 Mclocks | 50 163 | 5447 kb | -37 Mclocks | 0 | -242 Mclocks | 50 163 | 5447 kb |
PugXML | -100 Mclocks | 106 597 | 2747 kb | -38 Mclocks | 0 | -206 Mclocks | 131 677 | 2855 kb |
XercesC SAX | -N/A | N/A | N/A | -411 Mclocks | 70 380 | -411 Mclocks | 70 495 | 243 kb |
XercesC DOM | -300 Mclocks | 30 491 | 9251 kb | -65 Mclocks | 1 | -367 Mclocks | 30 492 | 9251 kb |
pugixml | -17 Mclocks | 40 | 2154 kb | -14 Mclocks | 0 | -32 Mclocks | 40 | 2154 kb |
pugixml (test of non-destructive parsing) | -12 Mclocks | 51 | 1632 kb | -21 Mclocks | 0 | -34 Mclocks | 51 | 1632 kb |
Note, that non-destructive parsing mode was just a test and is not yet in pugixml.
- -Q: I do not have/want STL support. How can I compile pugixml without STL?
-A: There is an undocumented define PUGIXML_NO_STL. If you uncomment the relevant line -in pugixml header file, it will compile without any STL classes. The reason it is undocumented -are that it will make some documented functions not available (specifically, xml_document::load, that -operates on std::istream, xml_node::path function, XPath-related functions and classes and as_utf16/as_utf8 -conversion functions). Otherwise, it will work fine.
- -Q: Do paths that are accepted by first_element_by_path have to end with delimiter?
-A: Either way will work, both /path/to/node/ and /path/to/node is fine.
- -I'm always open for questions; feel free to write them to arseny.kapoulkine@gmail.com. -
- -I'm always open for bug reports; feel free to write them to arseny.kapoulkine@gmail.com. -Please provide as much information as possible - version of pugixml, compiling and OS environment -(compiler and it's version, STL version, OS version, etc.), the description of the situation in which -the bug arises, the code and data files that show the bug, etc. - the more, the better. Though, please, -do not send executable files.
- -Note, that you can also submit bug reports/suggestions at -project page. - -
Here are some improvements that will be done in future versions (they are sorted by priority, the -upper ones will get there sooner).
- -The pugixml parser is distributed under the MIT license:
- --Copyright (c) 2006-2010 Arseny Kapoulkine - -Permission is hereby granted, free of charge, to any person -obtaining a copy of this software and associated documentation -files (the "Software"), to deal in the Software without -restriction, including without limitation the rights to use, -copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the -Software is furnished to do so, subject to the following -conditions: - -The above copyright notice and this permission notice shall be -included in all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, -EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES -OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND -NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT -HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, -WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING -FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR -OTHER DEALINGS IN THE SOFTWARE. -- -
Revised 25 May, 2010
-© Copyright Arseny Kapoulkine 2006-2010. All Rights Reserved.
- - diff --git a/docs/pugixml.cfg b/docs/pugixml.cfg deleted file mode 100644 index 56a026f..0000000 --- a/docs/pugixml.cfg +++ /dev/null @@ -1,1161 +0,0 @@ -# Doxyfile 1.3.9.1 - -# This file describes the settings to be used by the documentation system -# doxygen (www.doxygen.org) for a project -# -# All text after a hash (#) is considered a comment and will be ignored -# The format is: -# TAG = value [value, ...] -# For lists items can also be appended using: -# TAG += value [value, ...] -# Values that contain spaces should be placed between quotes (" ") - -#--------------------------------------------------------------------------- -# Project related configuration options -#--------------------------------------------------------------------------- - -# The PROJECT_NAME tag is a single word (or a sequence of words surrounded -# by quotes) that should identify the project. - -PROJECT_NAME = pugixml - -# The PROJECT_NUMBER tag can be used to enter a project or revision number. -# This could be handy for archiving the generated documentation or -# if some version control system is used. - -PROJECT_NUMBER = 0.7 - -# The OUTPUT_DIRECTORY tag is used to specify the (relative or absolute) -# base path where the generated documentation will be put. -# If a relative path is entered, it will be relative to the location -# where doxygen was started. If left blank the current directory will be used. - -OUTPUT_DIRECTORY = - -# If the CREATE_SUBDIRS tag is set to YES, then doxygen will create -# 4096 sub-directories (in 2 levels) under the output directory of each output -# format and will distribute the generated files over these directories. -# Enabling this option can be useful when feeding doxygen a huge amount of source -# files, where putting all generated files in the same directory would otherwise -# cause performance problems for the file system. - -CREATE_SUBDIRS = NO - -# The OUTPUT_LANGUAGE tag is used to specify the language in which all -# documentation generated by doxygen is written. Doxygen will use this -# information to generate all constant output in the proper language. -# The default language is English, other supported languages are: -# Brazilian, Catalan, Chinese, Chinese-Traditional, Croatian, Czech, Danish, -# Dutch, Finnish, French, German, Greek, Hungarian, Italian, Japanese, -# Japanese-en (Japanese with English messages), Korean, Korean-en, Norwegian, -# Polish, Portuguese, Romanian, Russian, Serbian, Slovak, Slovene, Spanish, -# Swedish, and Ukrainian. - -OUTPUT_LANGUAGE = English - -# This tag can be used to specify the encoding used in the generated output. -# The encoding is not always determined by the language that is chosen, -# but also whether or not the output is meant for Windows or non-Windows users. -# In case there is a difference, setting the USE_WINDOWS_ENCODING tag to YES -# forces the Windows encoding (this is the default for the Windows binary), -# whereas setting the tag to NO uses a Unix-style encoding (the default for -# all platforms other than Windows). - -USE_WINDOWS_ENCODING = YES - -# If the BRIEF_MEMBER_DESC tag is set to YES (the default) Doxygen will -# include brief member descriptions after the members that are listed in -# the file and class documentation (similar to JavaDoc). -# Set to NO to disable this. - -BRIEF_MEMBER_DESC = YES - -# If the REPEAT_BRIEF tag is set to YES (the default) Doxygen will prepend -# the brief description of a member or function before the detailed description. -# Note: if both HIDE_UNDOC_MEMBERS and BRIEF_MEMBER_DESC are set to NO, the -# brief descriptions will be completely suppressed. - -REPEAT_BRIEF = YES - -# This tag implements a quasi-intelligent brief description abbreviator -# that is used to form the text in various listings. Each string -# in this list, if found as the leading text of the brief description, will be -# stripped from the text and the result after processing the whole list, is used -# as the annotated text. Otherwise, the brief description is used as-is. If left -# blank, the following values are used ("$name" is automatically replaced with the -# name of the entity): "The $name class" "The $name widget" "The $name file" -# "is" "provides" "specifies" "contains" "represents" "a" "an" "the" - -ABBREVIATE_BRIEF = - -# If the ALWAYS_DETAILED_SEC and REPEAT_BRIEF tags are both set to YES then -# Doxygen will generate a detailed section even if there is only a brief -# description. - -ALWAYS_DETAILED_SEC = NO - -# If the INLINE_INHERITED_MEMB tag is set to YES, doxygen will show all inherited -# members of a class in the documentation of that class as if those members were -# ordinary class members. Constructors, destructors and assignment operators of -# the base classes will not be shown. - -INLINE_INHERITED_MEMB = NO - -# If the FULL_PATH_NAMES tag is set to YES then Doxygen will prepend the full -# path before files name in the file list and in the header files. If set -# to NO the shortest path that makes the file name unique will be used. - -FULL_PATH_NAMES = NO - -# If the FULL_PATH_NAMES tag is set to YES then the STRIP_FROM_PATH tag -# can be used to strip a user-defined part of the path. Stripping is -# only done if one of the specified strings matches the left-hand part of -# the path. The tag can be used to show relative paths in the file list. -# If left blank the directory from which doxygen is run is used as the -# path to strip. - -STRIP_FROM_PATH = - -# The STRIP_FROM_INC_PATH tag can be used to strip a user-defined part of -# the path mentioned in the documentation of a class, which tells -# the reader which header file to include in order to use a class. -# If left blank only the name of the header file containing the class -# definition is used. Otherwise one should specify the include paths that -# are normally passed to the compiler using the -I flag. - -STRIP_FROM_INC_PATH = - -# If the SHORT_NAMES tag is set to YES, doxygen will generate much shorter -# (but less readable) file names. This can be useful is your file systems -# doesn't support long names like on DOS, Mac, or CD-ROM. - -SHORT_NAMES = NO - -# If the JAVADOC_AUTOBRIEF tag is set to YES then Doxygen -# will interpret the first line (until the first dot) of a JavaDoc-style -# comment as the brief description. If set to NO, the JavaDoc -# comments will behave just like the Qt-style comments (thus requiring an -# explicit @brief command for a brief description. - -JAVADOC_AUTOBRIEF = YES - -# The MULTILINE_CPP_IS_BRIEF tag can be set to YES to make Doxygen -# treat a multi-line C++ special comment block (i.e. a block of //! or /// -# comments) as a brief description. This used to be the default behaviour. -# The new default is to treat a multi-line C++ comment block as a detailed -# description. Set this tag to YES if you prefer the old behaviour instead. - -MULTILINE_CPP_IS_BRIEF = NO - -# If the DETAILS_AT_TOP tag is set to YES then Doxygen -# will output the detailed description near the top, like JavaDoc. -# If set to NO, the detailed description appears after the member -# documentation. - -DETAILS_AT_TOP = YES - -# If the INHERIT_DOCS tag is set to YES (the default) then an undocumented -# member inherits the documentation from any documented member that it -# re-implements. - -INHERIT_DOCS = YES - -# If member grouping is used in the documentation and the DISTRIBUTE_GROUP_DOC -# tag is set to YES, then doxygen will reuse the documentation of the first -# member in the group (if any) for the other members of the group. By default -# all members of a group must be documented explicitly. - -DISTRIBUTE_GROUP_DOC = NO - -# The TAB_SIZE tag can be used to set the number of spaces in a tab. -# Doxygen uses this value to replace tabs by spaces in code fragments. - -TAB_SIZE = 4 - -# This tag can be used to specify a number of aliases that acts -# as commands in the documentation. An alias has the form "name=value". -# For example adding "sideeffect=\par Side Effects:\n" will allow you to -# put the command \sideeffect (or @sideeffect) in the documentation, which -# will result in a user-defined paragraph with heading "Side Effects:". -# You can put \n's in the value part of an alias to insert newlines. - -ALIASES = - -# Set the OPTIMIZE_OUTPUT_FOR_C tag to YES if your project consists of C sources -# only. Doxygen will then generate output that is more tailored for C. -# For instance, some of the names that are used will be different. The list -# of all members will be omitted, etc. - -OPTIMIZE_OUTPUT_FOR_C = NO - -# Set the OPTIMIZE_OUTPUT_JAVA tag to YES if your project consists of Java sources -# only. Doxygen will then generate output that is more tailored for Java. -# For instance, namespaces will be presented as packages, qualified scopes -# will look different, etc. - -OPTIMIZE_OUTPUT_JAVA = NO - -# Set the SUBGROUPING tag to YES (the default) to allow class member groups of -# the same type (for instance a group of public functions) to be put as a -# subgroup of that type (e.g. under the Public Functions section). Set it to -# NO to prevent subgrouping. Alternatively, this can be done per class using -# the \nosubgrouping command. - -SUBGROUPING = YES - -#--------------------------------------------------------------------------- -# Build related configuration options -#--------------------------------------------------------------------------- - -# If the EXTRACT_ALL tag is set to YES doxygen will assume all entities in -# documentation are documented, even if no documentation was available. -# Private class members and static file members will be hidden unless -# the EXTRACT_PRIVATE and EXTRACT_STATIC tags are set to YES - -EXTRACT_ALL = NO - -# If the EXTRACT_PRIVATE tag is set to YES all private members of a class -# will be included in the documentation. - -EXTRACT_PRIVATE = NO - -# If the EXTRACT_STATIC tag is set to YES all static members of a file -# will be included in the documentation. - -EXTRACT_STATIC = YES - -# If the EXTRACT_LOCAL_CLASSES tag is set to YES classes (and structs) -# defined locally in source files will be included in the documentation. -# If set to NO only classes defined in header files are included. - -EXTRACT_LOCAL_CLASSES = NO - -# This flag is only useful for Objective-C code. When set to YES local -# methods, which are defined in the implementation section but not in -# the interface are included in the documentation. -# If set to NO (the default) only methods in the interface are included. - -EXTRACT_LOCAL_METHODS = NO - -# If the HIDE_UNDOC_MEMBERS tag is set to YES, Doxygen will hide all -# undocumented members of documented classes, files or namespaces. -# If set to NO (the default) these members will be included in the -# various overviews, but no documentation section is generated. -# This option has no effect if EXTRACT_ALL is enabled. - -HIDE_UNDOC_MEMBERS = NO - -# If the HIDE_UNDOC_CLASSES tag is set to YES, Doxygen will hide all -# undocumented classes that are normally visible in the class hierarchy. -# If set to NO (the default) these classes will be included in the various -# overviews. This option has no effect if EXTRACT_ALL is enabled. - -HIDE_UNDOC_CLASSES = NO - -# If the HIDE_FRIEND_COMPOUNDS tag is set to YES, Doxygen will hide all -# friend (class|struct|union) declarations. -# If set to NO (the default) these declarations will be included in the -# documentation. - -HIDE_FRIEND_COMPOUNDS = NO - -# If the HIDE_IN_BODY_DOCS tag is set to YES, Doxygen will hide any -# documentation blocks found inside the body of a function. -# If set to NO (the default) these blocks will be appended to the -# function's detailed documentation block. - -HIDE_IN_BODY_DOCS = NO - -# The INTERNAL_DOCS tag determines if documentation -# that is typed after a \internal command is included. If the tag is set -# to NO (the default) then the documentation will be excluded. -# Set it to YES to include the internal documentation. - -INTERNAL_DOCS = NO - -# If the CASE_SENSE_NAMES tag is set to NO then Doxygen will only generate -# file names in lower-case letters. If set to YES upper-case letters are also -# allowed. This is useful if you have classes or files whose names only differ -# in case and if your file system supports case sensitive file names. Windows -# and Mac users are advised to set this option to NO. - -CASE_SENSE_NAMES = NO - -# If the HIDE_SCOPE_NAMES tag is set to NO (the default) then Doxygen -# will show members with their full class and namespace scopes in the -# documentation. If set to YES the scope will be hidden. - -HIDE_SCOPE_NAMES = NO - -# If the SHOW_INCLUDE_FILES tag is set to YES (the default) then Doxygen -# will put a list of the files that are included by a file in the documentation -# of that file. - -SHOW_INCLUDE_FILES = NO - -# If the INLINE_INFO tag is set to YES (the default) then a tag [inline] -# is inserted in the documentation for inline members. - -INLINE_INFO = YES - -# If the SORT_MEMBER_DOCS tag is set to YES (the default) then doxygen -# will sort the (detailed) documentation of file and class members -# alphabetically by member name. If set to NO the members will appear in -# declaration order. - -SORT_MEMBER_DOCS = NO - -# If the SORT_BRIEF_DOCS tag is set to YES then doxygen will sort the -# brief documentation of file, namespace and class members alphabetically -# by member name. If set to NO (the default) the members will appear in -# declaration order. - -SORT_BRIEF_DOCS = NO - -# If the SORT_BY_SCOPE_NAME tag is set to YES, the class list will be -# sorted by fully-qualified names, including namespaces. If set to -# NO (the default), the class list will be sorted only by class name, -# not including the namespace part. -# Note: This option is not very useful if HIDE_SCOPE_NAMES is set to YES. -# Note: This option applies only to the class list, not to the -# alphabetical list. - -SORT_BY_SCOPE_NAME = YES - -# The GENERATE_TODOLIST tag can be used to enable (YES) or -# disable (NO) the todo list. This list is created by putting \todo -# commands in the documentation. - -GENERATE_TODOLIST = YES - -# The GENERATE_TESTLIST tag can be used to enable (YES) or -# disable (NO) the test list. This list is created by putting \test -# commands in the documentation. - -GENERATE_TESTLIST = YES - -# The GENERATE_BUGLIST tag can be used to enable (YES) or -# disable (NO) the bug list. This list is created by putting \bug -# commands in the documentation. - -GENERATE_BUGLIST = YES - -# The GENERATE_DEPRECATEDLIST tag can be used to enable (YES) or -# disable (NO) the deprecated list. This list is created by putting -# \deprecated commands in the documentation. - -GENERATE_DEPRECATEDLIST= YES - -# The ENABLED_SECTIONS tag can be used to enable conditional -# documentation sections, marked by \if sectionname ... \endif. - -ENABLED_SECTIONS = - -# The MAX_INITIALIZER_LINES tag determines the maximum number of lines -# the initial value of a variable or define consists of for it to appear in -# the documentation. If the initializer consists of more lines than specified -# here it will be hidden. Use a value of 0 to hide initializers completely. -# The appearance of the initializer of individual variables and defines in the -# documentation can be controlled using \showinitializer or \hideinitializer -# command in the documentation regardless of this setting. - -MAX_INITIALIZER_LINES = 30 - -# Set the SHOW_USED_FILES tag to NO to disable the list of files generated -# at the bottom of the documentation of classes and structs. If set to YES the -# list will mention the files that were used to generate the documentation. - -SHOW_USED_FILES = NO - -# If the sources in your project are distributed over multiple directories -# then setting the SHOW_DIRECTORIES tag to YES will show the directory hierarchy -# in the documentation. - -SHOW_DIRECTORIES = NO - -#--------------------------------------------------------------------------- -# configuration options related to warning and progress messages -#--------------------------------------------------------------------------- - -# The QUIET tag can be used to turn on/off the messages that are generated -# by doxygen. Possible values are YES and NO. If left blank NO is used. - -QUIET = NO - -# The WARNINGS tag can be used to turn on/off the warning messages that are -# generated by doxygen. Possible values are YES and NO. If left blank -# NO is used. - -WARNINGS = YES - -# If WARN_IF_UNDOCUMENTED is set to YES, then doxygen will generate warnings -# for undocumented members. If EXTRACT_ALL is set to YES then this flag will -# automatically be disabled. - -WARN_IF_UNDOCUMENTED = YES - -# If WARN_IF_DOC_ERROR is set to YES, doxygen will generate warnings for -# potential errors in the documentation, such as not documenting some -# parameters in a documented function, or documenting parameters that -# don't exist or using markup commands wrongly. - -WARN_IF_DOC_ERROR = YES - -# The WARN_FORMAT tag determines the format of the warning messages that -# doxygen can produce. The string should contain the $file, $line, and $text -# tags, which will be replaced by the file and line number from which the -# warning originated and the warning text. - -WARN_FORMAT = "$file:$line: $text" - -# The WARN_LOGFILE tag can be used to specify a file to which warning -# and error messages should be written. If left blank the output is written -# to stderr. - -WARN_LOGFILE = pugixml.warn - -#--------------------------------------------------------------------------- -# configuration options related to the input files -#--------------------------------------------------------------------------- - -# The INPUT tag can be used to specify the files and/or directories that contain -# documented source files. You may enter file names like "myfile.cpp" or -# directories like "/usr/src/myproject". Separate the files or directories -# with spaces. - -INPUT = ../src - -# If the value of the INPUT tag contains directories, you can use the -# FILE_PATTERNS tag to specify one or more wildcard pattern (like *.cpp -# and *.h) to filter out the source-files in the directories. If left -# blank the following patterns are tested: -# *.c *.cc *.cxx *.cpp *.c++ *.java *.ii *.ixx *.ipp *.i++ *.inl *.h *.hh *.hxx *.hpp -# *.h++ *.idl *.odl *.cs *.php *.php3 *.inc *.m *.mm - -FILE_PATTERNS = *.hpp - -# The RECURSIVE tag can be used to turn specify whether or not subdirectories -# should be searched for input files as well. Possible values are YES and NO. -# If left blank NO is used. - -RECURSIVE = NO - -# The EXCLUDE tag can be used to specify files and/or directories that should -# excluded from the INPUT source files. This way you can easily exclude a -# subdirectory from a directory tree whose root is specified with the INPUT tag. - -EXCLUDE = - -# The EXCLUDE_SYMLINKS tag can be used select whether or not files or directories -# that are symbolic links (a Unix filesystem feature) are excluded from the input. - -EXCLUDE_SYMLINKS = NO - -# If the value of the INPUT tag contains directories, you can use the -# EXCLUDE_PATTERNS tag to specify one or more wildcard patterns to exclude -# certain files from those directories. - -EXCLUDE_PATTERNS = - -# The EXAMPLE_PATH tag can be used to specify one or more files or -# directories that contain example code fragments that are included (see -# the \include command). - -EXAMPLE_PATH = - -# If the value of the EXAMPLE_PATH tag contains directories, you can use the -# EXAMPLE_PATTERNS tag to specify one or more wildcard pattern (like *.cpp -# and *.h) to filter out the source-files in the directories. If left -# blank all files are included. - -EXAMPLE_PATTERNS = - -# If the EXAMPLE_RECURSIVE tag is set to YES then subdirectories will be -# searched for input files to be used with the \include or \dontinclude -# commands irrespective of the value of the RECURSIVE tag. -# Possible values are YES and NO. If left blank NO is used. - -EXAMPLE_RECURSIVE = NO - -# The IMAGE_PATH tag can be used to specify one or more files or -# directories that contain image that are included in the documentation (see -# the \image command). - -IMAGE_PATH = - -# The INPUT_FILTER tag can be used to specify a program that doxygen should -# invoke to filter for each input file. Doxygen will invoke the filter program -# by executing (via popen()) the command