14#ifndef PUGIXML_VERSION
15# define PUGIXML_VERSION 1150
21#ifndef HEADER_PUGIXML_HPP
22#define HEADER_PUGIXML_HPP
28#if !defined(PUGIXML_NO_XPATH) && !defined(PUGIXML_NO_EXCEPTIONS)
40#if !defined(PUGIXML_HAS_STRING_VIEW) && !defined(PUGIXML_NO_STL)
41# if __cplusplus >= 201703L
42# define PUGIXML_HAS_STRING_VIEW
43# elif defined(_MSVC_LANG) && _MSVC_LANG >= 201703L
44# define PUGIXML_HAS_STRING_VIEW
49#ifdef PUGIXML_HAS_STRING_VIEW
50# include <string_view>
54#ifndef PUGIXML_DEPRECATED
56# define PUGIXML_DEPRECATED __attribute__((deprecated))
57# elif defined(_MSC_VER) && _MSC_VER >= 1300
58# define PUGIXML_DEPRECATED __declspec(deprecated)
60# define PUGIXML_DEPRECATED
71# define PUGIXML_CLASS PUGIXML_API
75#ifndef PUGIXML_FUNCTION
76# define PUGIXML_FUNCTION PUGIXML_API
80#ifndef PUGIXML_HAS_LONG_LONG
81# if __cplusplus >= 201103
82# define PUGIXML_HAS_LONG_LONG
83# elif defined(_MSC_VER) && _MSC_VER >= 1400
84# define PUGIXML_HAS_LONG_LONG
89#ifndef PUGIXML_HAS_MOVE
90# if __cplusplus >= 201103
91# define PUGIXML_HAS_MOVE
92# elif defined(_MSC_VER) && _MSC_VER >= 1600
93# define PUGIXML_HAS_MOVE
98#ifndef PUGIXML_NOEXCEPT
99# if __cplusplus >= 201103
100# define PUGIXML_NOEXCEPT noexcept
101# elif defined(_MSC_VER) && _MSC_VER >= 1900
102# define PUGIXML_NOEXCEPT noexcept
104# define PUGIXML_NOEXCEPT throw()
109#ifdef PUGIXML_COMPACT
110# define PUGIXML_NOEXCEPT_IF_NOT_COMPACT
112# define PUGIXML_NOEXCEPT_IF_NOT_COMPACT PUGIXML_NOEXCEPT
116#ifndef PUGIXML_OVERRIDE
117# if __cplusplus >= 201103
118# define PUGIXML_OVERRIDE override
119# elif defined(_MSC_VER) && _MSC_VER >= 1700
120# define PUGIXML_OVERRIDE override
122# define PUGIXML_OVERRIDE
128# if __cplusplus >= 201103
129# define PUGIXML_NULL nullptr
130# elif defined(_MSC_VER) && _MSC_VER >= 1600
131# define PUGIXML_NULL nullptr
133# define PUGIXML_NULL 0
138#ifdef PUGIXML_WCHAR_MODE
139# define PUGIXML_TEXT(t) L ## t
140# define PUGIXML_CHAR wchar_t
142# define PUGIXML_TEXT(t) t
143# define PUGIXML_CHAR char
151#ifndef PUGIXML_NO_STL
156#ifdef PUGIXML_HAS_STRING_VIEW
158 typedef std::basic_string_view<PUGIXML_CHAR> string_view_t;
317 #ifndef PUGIXML_NO_XPATH
351 virtual void write(
const void* data,
size_t size) = 0;
367 #ifndef PUGIXML_NO_STL
427 int as_int(
int def = 0)
const;
428 unsigned int as_uint(
unsigned int def = 0)
const;
430 float as_float(
float def = 0)
const;
432 #ifdef PUGIXML_HAS_LONG_LONG
433 long long as_llong(
long long def = 0)
const;
434 unsigned long long as_ullong(
unsigned long long def = 0)
const;
438 bool as_bool(
bool def =
false)
const;
443 #ifdef PUGIXML_HAS_STRING_VIEW
448 #ifdef PUGIXML_HAS_STRING_VIEW
458 bool set_value(
double rhs,
int precision);
460 bool set_value(
float rhs,
int precision);
463 #ifdef PUGIXML_HAS_LONG_LONG
478 #ifdef PUGIXML_HAS_STRING_VIEW
482 #ifdef PUGIXML_HAS_LONG_LONG
576 #ifdef PUGIXML_HAS_STRING_VIEW
585 #ifdef PUGIXML_HAS_STRING_VIEW
598 #ifdef PUGIXML_HAS_STRING_VIEW
603 #ifdef PUGIXML_HAS_STRING_VIEW
612 #ifdef PUGIXML_HAS_STRING_VIEW
636 #ifdef PUGIXML_HAS_STRING_VIEW
658 #ifdef PUGIXML_HAS_STRING_VIEW
668 #ifdef PUGIXML_HAS_STRING_VIEW
713 if (pred(cur))
return cur;
732 #ifndef PUGIXML_NO_STL
743 #ifndef PUGIXML_NO_XPATH
761 #ifndef PUGIXML_NO_STL
837 int as_int(
int def = 0)
const;
838 unsigned int as_uint(
unsigned int def = 0)
const;
840 float as_float(
float def = 0)
const;
842 #ifdef PUGIXML_HAS_LONG_LONG
843 long long as_llong(
long long def = 0)
const;
844 unsigned long long as_ullong(
unsigned long long def = 0)
const;
848 bool as_bool(
bool def =
false)
const;
852 bool set(
const char_t* rhs,
size_t size);
853 #ifdef PUGIXML_HAS_STRING_VIEW
854 bool set(string_view_t rhs);
859 bool set(
unsigned int rhs);
861 bool set(
unsigned long rhs);
862 bool set(
double rhs);
863 bool set(
double rhs,
int precision);
865 bool set(
float rhs,
int precision);
868 #ifdef PUGIXML_HAS_LONG_LONG
869 bool set(
long long rhs);
870 bool set(
unsigned long long rhs);
883 #ifdef PUGIXML_HAS_STRING_VIEW
887 #ifdef PUGIXML_HAS_LONG_LONG
920 #ifndef PUGIXML_NO_STL
962 #ifndef PUGIXML_NO_STL
998 #ifndef PUGIXML_NO_STL
1099 operator bool()
const;
1128 #ifdef PUGIXML_HAS_MOVE
1140 #ifndef PUGIXML_NO_STL
1170 #ifndef PUGIXML_NO_STL
1184#ifndef PUGIXML_NO_XPATH
1208 operator bool()
const;
1243 bool set(
bool value);
1244 bool set(
double value);
1272 #ifdef PUGIXML_HAS_MOVE
1282 bool set(
const char_t* name,
bool value);
1283 bool set(
const char_t* name,
double value);
1316 #ifdef PUGIXML_HAS_MOVE
1333 #ifndef PUGIXML_NO_STL
1366 #ifndef PUGIXML_NO_EXCEPTIONS
1367 #if defined(_MSC_VER)
1370 #pragma warning(push)
1371 #pragma warning(disable: 4275)
1389 #if defined(_MSC_VER)
1390 #pragma warning(pop)
1466 #ifdef PUGIXML_HAS_MOVE
1476 size_t size()
const;
1507#ifndef PUGIXML_NO_STL
1518 typedef void* (*allocation_function)(
size_t size);
1531#if !defined(PUGIXML_NO_STL) && (defined(_MSC_VER) || defined(__ICC))
1541#if !defined(PUGIXML_NO_STL) && defined(__SUNPRO_CC)
1545 std::bidirectional_iterator_tag
PUGIXML_FUNCTION __iterator_category(
const pugi::xml_node_iterator&);
1546 std::bidirectional_iterator_tag
PUGIXML_FUNCTION __iterator_category(
const pugi::xml_attribute_iterator&);
1547 std::bidirectional_iterator_tag
PUGIXML_FUNCTION __iterator_category(
const pugi::xml_named_node_iterator&);
1555#if defined(PUGIXML_HEADER_ONLY) && !defined(PUGIXML_SOURCE)
1556# define PUGIXML_SOURCE "pugixml.cpp"
1557# include PUGIXML_SOURCE
Definition pugixml.hpp:946
ptrdiff_t difference_type
Definition pugixml.hpp:957
friend class xml_node
Definition pugixml.hpp:947
xml_attribute value_type
Definition pugixml.hpp:958
xml_node _parent
Definition pugixml.hpp:951
xml_attribute _wrap
Definition pugixml.hpp:950
bool operator!=(const xml_attribute_iterator &rhs) const
Definition pugixml.cpp:7307
bool operator==(const xml_attribute_iterator &rhs) const
Definition pugixml.cpp:7302
xml_attribute * operator->() const
Definition pugixml.cpp:7318
xml_attribute & operator*() const
Definition pugixml.cpp:7312
xml_attribute * pointer
Definition pugixml.hpp:959
xml_attribute_iterator(xml_attribute_struct *ref, xml_node_struct *parent)
Definition pugixml.cpp:7298
std::bidirectional_iterator_tag iterator_category
Definition pugixml.hpp:963
xml_attribute_iterator & operator--()
Definition pugixml.cpp:7338
xml_attribute_iterator & operator++()
Definition pugixml.cpp:7324
xml_attribute & reference
Definition pugixml.hpp:960
Definition pugixml.hpp:386
bool operator<=(const xml_attribute &r) const
Definition pugixml.cpp:5279
bool operator!=(const xml_attribute &r) const
Definition pugixml.cpp:5264
friend class xml_node
Definition pugixml.hpp:388
bool operator>(const xml_attribute &r) const
Definition pugixml.cpp:5274
bool operator!() const
Definition pugixml.cpp:5254
double as_double(double def=0) const
Definition pugixml.cpp:5323
bool set_name(const char_t *rhs)
Definition pugixml.cpp:5459
xml_attribute & operator=(const char_t *rhs)
Definition pugixml.cpp:5389
const char_t * name() const
Definition pugixml.cpp:5365
bool set_value(const char_t *rhs)
Definition pugixml.cpp:5482
bool empty() const
Definition pugixml.cpp:5360
bool operator<(const xml_attribute &r) const
Definition pugixml.cpp:5269
bool operator==(const xml_attribute &r) const
Definition pugixml.cpp:5259
xml_attribute previous_attribute() const
Definition pugixml.cpp:5295
xml_attribute_struct * _attr
Definition pugixml.hpp:391
bool operator>=(const xml_attribute &r) const
Definition pugixml.cpp:5284
xml_attribute next_attribute() const
Definition pugixml.cpp:5289
const char_t * value() const
Definition pugixml.cpp:5372
xml_attribute_struct * internal_object() const
Definition pugixml.cpp:5384
unsigned int as_uint(unsigned int def=0) const
Definition pugixml.cpp:5316
void(* unspecified_bool_type)(xml_attribute ***)
Definition pugixml.hpp:393
size_t hash_value() const
Definition pugixml.cpp:5379
xml_attribute()
Definition pugixml.cpp:5237
const char_t * as_string(const char_t *def=PUGIXML_TEXT("")) const
Definition pugixml.cpp:5302
friend class xml_attribute_iterator
Definition pugixml.hpp:387
float as_float(float def=0) const
Definition pugixml.cpp:5330
int as_int(int def=0) const
Definition pugixml.cpp:5309
bool as_bool(bool def=false) const
Definition pugixml.cpp:5337
xml_parse_result load_buffer_inplace_own(void *contents, size_t size, unsigned int options=parse_default, xml_encoding encoding=encoding_auto)
Definition pugixml.cpp:7763
bool save_file(const char *path, const char_t *indent=PUGIXML_TEXT("\t"), unsigned int flags=format_default, xml_encoding encoding=encoding_auto) const
Definition pugixml.cpp:7814
xml_parse_result load_buffer_inplace(void *contents, size_t size, unsigned int options=parse_default, xml_encoding encoding=encoding_auto)
Definition pugixml.cpp:7756
xml_document(const xml_document &)
void reset()
Definition pugixml.cpp:7490
char _memory[192]
Definition pugixml.hpp:1111
xml_parse_result load_buffer(const void *contents, size_t size, unsigned int options=parse_default, xml_encoding encoding=encoding_auto)
Definition pugixml.cpp:7749
xml_node document_element() const
Definition pugixml.cpp:7830
void save(xml_writer &writer, const char_t *indent=PUGIXML_TEXT("\t"), unsigned int flags=format_default, xml_encoding encoding=encoding_auto) const
Definition pugixml.cpp:7770
xml_parse_result load_string(const char_t *contents, unsigned int options=parse_default)
Definition pugixml.cpp:7712
xml_document & operator=(const xml_document &)
void _create()
Definition pugixml.cpp:7503
char_t * _buffer
Definition pugixml.hpp:1109
void _destroy()
Definition pugixml.cpp:7546
xml_parse_result load(std::basic_istream< char > &stream, unsigned int options=parse_default, xml_encoding encoding=encoding_auto)
Definition pugixml.cpp:7697
xml_parse_result load_file(const char *path, unsigned int options=parse_default, xml_encoding encoding=encoding_auto)
Definition pugixml.cpp:7729
void _move(xml_document &rhs) PUGIXML_NOEXCEPT_IF_NOT_COMPACT
Definition pugixml.hpp:988
friend class xml_node
Definition pugixml.hpp:989
ptrdiff_t difference_type
Definition pugixml.hpp:993
xml_node & reference
Definition pugixml.hpp:996
xml_named_node_iterator & operator++()
Definition pugixml.cpp:7385
xml_named_node_iterator()
Definition pugixml.cpp:7351
const char_t * _name
Definition pugixml.hpp:1025
xml_node _wrap
Definition pugixml.hpp:1023
xml_node & operator*() const
Definition pugixml.cpp:7373
xml_node value_type
Definition pugixml.hpp:994
xml_named_node_iterator & operator--()
Definition pugixml.cpp:7399
bool operator==(const xml_named_node_iterator &rhs) const
Definition pugixml.cpp:7363
xml_node * operator->() const
Definition pugixml.cpp:7379
std::bidirectional_iterator_tag iterator_category
Definition pugixml.hpp:999
xml_node _parent
Definition pugixml.hpp:1024
bool operator!=(const xml_named_node_iterator &rhs) const
Definition pugixml.cpp:7368
xml_node * pointer
Definition pugixml.hpp:995
Definition pugixml.hpp:904
xml_node_iterator & operator--()
Definition pugixml.cpp:7277
friend class xml_node
Definition pugixml.hpp:905
bool operator==(const xml_node_iterator &rhs) const
Definition pugixml.cpp:7241
xml_node value_type
Definition pugixml.hpp:916
bool operator!=(const xml_node_iterator &rhs) const
Definition pugixml.cpp:7246
xml_node _parent
Definition pugixml.hpp:909
xml_node * pointer
Definition pugixml.hpp:917
xml_node _wrap
Definition pugixml.hpp:908
xml_node_iterator & operator++()
Definition pugixml.cpp:7263
std::bidirectional_iterator_tag iterator_category
Definition pugixml.hpp:921
xml_node * operator->() const
Definition pugixml.cpp:7257
xml_node & reference
Definition pugixml.hpp:918
xml_node_iterator(xml_node_struct *ref, xml_node_struct *parent)
Definition pugixml.cpp:7237
ptrdiff_t difference_type
Definition pugixml.hpp:915
xml_node & operator*() const
Definition pugixml.cpp:7251
Definition pugixml.hpp:506
size_t hash_value() const
Definition pugixml.cpp:6836
xml_node insert_child_before(xml_node_type type, const xml_node &node)
Definition pugixml.cpp:6287
xml_node parent() const
Definition pugixml.cpp:5913
xml_node root() const
Definition pugixml.cpp:5918
bool operator!() const
Definition pugixml.cpp:5613
xml_node previous_sibling() const
Definition pugixml.cpp:5906
xml_attribute prepend_copy(const xml_attribute &proto)
Definition pugixml.cpp:6200
xml_node prepend_move(const xml_node &moved)
Definition pugixml.cpp:6483
friend class xml_named_node_iterator
Definition pugixml.hpp:509
bool empty() const
Definition pugixml.cpp:5683
bool operator>=(const xml_node &r) const
Definition pugixml.cpp:5678
bool operator!=(const xml_node &r) const
Definition pugixml.cpp:5658
xml_attribute attribute(const char_t *name) const
Definition pugixml.cpp:5721
xml_attribute first_attribute() const
Definition pugixml.cpp:5951
xml_node last_child() const
Definition pugixml.cpp:5970
ptrdiff_t offset_debug() const
Definition pugixml.cpp:6873
xml_attribute insert_copy_after(const xml_attribute &proto, const xml_attribute &attr)
Definition pugixml.cpp:6217
xml_node child(const char_t *name) const
Definition pugixml.cpp:5707
xml_attribute find_attribute(Predicate pred) const
Definition pugixml.hpp:681
xml_node_struct * _root
Definition pugixml.hpp:512
bool set_name(const char_t *rhs)
Definition pugixml.cpp:5977
xml_node()
Definition pugixml.cpp:5596
attribute_iterator attributes_begin() const
Definition pugixml.cpp:5628
xml_object_range< xml_node_iterator > children() const
Definition pugixml.cpp:5638
const char_t * child_value() const
Definition pugixml.cpp:5928
bool remove_children()
Definition pugixml.cpp:6607
bool set_value(const char_t *rhs)
Definition pugixml.cpp:6009
xml_text text() const
Definition pugixml.cpp:5923
bool remove_attributes()
Definition pugixml.cpp:6561
xml_attribute insert_copy_before(const xml_attribute &proto, const xml_attribute &attr)
Definition pugixml.cpp:6235
void(* unspecified_bool_type)(xml_node ***)
Definition pugixml.hpp:514
xml_node find_node(Predicate pred) const
Definition pugixml.hpp:705
xml_attribute_iterator attribute_iterator
Definition pugixml.hpp:774
const char_t * value() const
Definition pugixml.cpp:5700
string_t path(char_t delimiter='/') const
Definition pugixml.cpp:6711
xml_node_type type() const
Definition pugixml.cpp:5695
friend class xml_node_iterator
Definition pugixml.hpp:508
xml_parse_result append_buffer(const void *contents, size_t size, unsigned int options=parse_default, xml_encoding encoding=encoding_auto)
Definition pugixml.cpp:6628
xml_node append_move(const xml_node &moved)
Definition pugixml.cpp:6467
xml_object_range< xml_attribute_iterator > attributes() const
Definition pugixml.cpp:5648
iterator end() const
Definition pugixml.cpp:5623
const char_t * name() const
Definition pugixml.cpp:5688
xml_node insert_move_after(const xml_node &moved, const xml_node &node)
Definition pugixml.cpp:6499
xml_attribute append_copy(const xml_attribute &proto)
Definition pugixml.cpp:6183
bool remove_child(const xml_node &n)
Definition pugixml.cpp:6594
xml_node first_child() const
Definition pugixml.cpp:5964
bool operator>(const xml_node &r) const
Definition pugixml.cpp:5668
xml_node find_child(Predicate pred) const
Definition pugixml.hpp:693
xml_attribute last_attribute() const
Definition pugixml.cpp:5957
bool operator==(const xml_node &r) const
Definition pugixml.cpp:5653
bool operator<=(const xml_node &r) const
Definition pugixml.cpp:5673
xml_node insert_child_after(xml_node_type type, const xml_node &node)
Definition pugixml.cpp:6305
attribute_iterator attributes_end() const
Definition pugixml.cpp:5633
xml_node_iterator iterator
Definition pugixml.hpp:768
xml_node next_sibling() const
Definition pugixml.cpp:5749
xml_node insert_move_before(const xml_node &moved, const xml_node &node)
Definition pugixml.cpp:6517
xml_node prepend_child(xml_node_type type=node_element)
Definition pugixml.cpp:6270
iterator begin() const
Definition pugixml.cpp:5618
friend class xml_attribute_iterator
Definition pugixml.hpp:507
bool operator<(const xml_node &r) const
Definition pugixml.cpp:5663
xml_node_struct * internal_object() const
Definition pugixml.cpp:6841
xml_node append_child(xml_node_type type=node_element)
Definition pugixml.cpp:6253
Definition pugixml.hpp:326
It iterator
Definition pugixml.hpp:329
It begin() const
Definition pugixml.hpp:335
bool empty() const
Definition pugixml.hpp:338
It _begin
Definition pugixml.hpp:341
xml_object_range(It b, It e)
Definition pugixml.hpp:331
It end() const
Definition pugixml.hpp:336
It const_iterator
Definition pugixml.hpp:328
It _end
Definition pugixml.hpp:341
Definition pugixml.hpp:805
const char_t * as_string(const char_t *def=PUGIXML_TEXT("")) const
Definition pugixml.cpp:6974
friend class xml_node
Definition pugixml.hpp:806
double as_double(double def=0) const
Definition pugixml.cpp:6998
const char_t * get() const
Definition pugixml.cpp:6966
xml_text & operator=(const char_t *rhs)
Definition pugixml.cpp:7142
bool operator!() const
Definition pugixml.cpp:6956
xml_node_struct * _data_new()
Definition pugixml.cpp:6935
unsigned int as_uint(unsigned int def=0) const
Definition pugixml.cpp:6990
float as_float(float def=0) const
Definition pugixml.cpp:7006
xml_node_struct * _data() const
Definition pugixml.cpp:6920
xml_node_struct * _root
Definition pugixml.hpp:808
int as_int(int def=0) const
Definition pugixml.cpp:6982
bool empty() const
Definition pugixml.cpp:6961
bool set(const char_t *rhs)
Definition pugixml.cpp:7040
xml_node data() const
Definition pugixml.cpp:7212
xml_text(xml_node_struct *root)
Definition pugixml.cpp:6916
bool as_bool(bool def=false) const
Definition pugixml.cpp:7014
void(* unspecified_bool_type)(xml_text ***)
Definition pugixml.hpp:810
Definition pugixml.hpp:1032
friend class xml_node
Definition pugixml.hpp:1033
xml_tree_walker()
Definition pugixml.cpp:5214
virtual bool for_each(xml_node &node)=0
int depth() const
Definition pugixml.cpp:5222
virtual bool begin(xml_node &node)
Definition pugixml.cpp:5227
int _depth
Definition pugixml.hpp:1036
virtual bool end(xml_node &node)
Definition pugixml.cpp:5232
virtual void write(const void *data, size_t size) PUGIXML_OVERRIDE
Definition pugixml.cpp:5182
xml_writer_file(void *file)
Definition pugixml.cpp:5178
void * file
Definition pugixml.hpp:364
xml_writer_stream(std::basic_ostream< char > &stream)
Definition pugixml.cpp:5189
std::basic_ostream< wchar_t > * wide_stream
Definition pugixml.hpp:380
virtual void write(const void *data, size_t size) PUGIXML_OVERRIDE
Definition pugixml.cpp:5197
std::basic_ostream< char > * narrow_stream
Definition pugixml.hpp:379
Definition pugixml.hpp:346
virtual void write(const void *data, size_t size)=0
virtual const char * what() const PUGIXML_NOEXCEPT PUGIXML_OVERRIDE
Definition pugixml.cpp:12697
const xpath_parse_result & result() const
Definition pugixml.cpp:12702
xpath_parse_result _result
Definition pugixml.hpp:1377
xpath_exception(const xpath_parse_result &result)
Definition pugixml.cpp:12692
Definition pugixml.hpp:1437
xpath_node_set & operator=(const xpath_node_set &ns)
Definition pugixml.cpp:12836
size_t size() const
Definition pugixml.cpp:12869
type_t _type
Definition pugixml.hpp:1495
xpath_node first() const
Definition pugixml.cpp:12900
const xpath_node & operator[](size_t index) const
Definition pugixml.cpp:12879
const_iterator end() const
Definition pugixml.cpp:12890
const xpath_node * const_iterator
Definition pugixml.hpp:1448
type_t
Definition pugixml.hpp:1441
@ type_sorted_reverse
Definition pugixml.hpp:1444
@ type_unsorted
Definition pugixml.hpp:1442
@ type_sorted
Definition pugixml.hpp:1443
xpath_node_set()
Definition pugixml.cpp:12816
const xpath_node * iterator
Definition pugixml.hpp:1451
void _assign(const_iterator begin, const_iterator end, type_t type)
Definition pugixml.cpp:12771
xpath_node * _begin
Definition pugixml.hpp:1499
const_iterator begin() const
Definition pugixml.cpp:12885
xpath_node _storage[1]
Definition pugixml.hpp:1497
bool empty() const
Definition pugixml.cpp:12874
xpath_node * _end
Definition pugixml.hpp:1500
type_t type() const
Definition pugixml.cpp:12864
void _move(xpath_node_set &rhs) PUGIXML_NOEXCEPT
Definition pugixml.hpp:1396
xml_attribute attribute() const
Definition pugixml.cpp:12725
void(* unspecified_bool_type)(xpath_node ***)
Definition pugixml.hpp:1401
bool operator!=(const xpath_node &n) const
Definition pugixml.cpp:12754
xml_node parent() const
Definition pugixml.cpp:12730
bool operator==(const xpath_node &n) const
Definition pugixml.cpp:12749
xml_node _node
Definition pugixml.hpp:1398
bool operator!() const
Definition pugixml.cpp:12744
xml_node node() const
Definition pugixml.cpp:12720
xml_attribute _attribute
Definition pugixml.hpp:1399
xpath_node()
Definition pugixml.cpp:12708
Definition pugixml.hpp:1294
bool operator!() const
Definition pugixml.cpp:13442
xpath_node evaluate_node(const xpath_node &n) const
Definition pugixml.cpp:13406
void(* unspecified_bool_type)(xpath_query ***)
Definition pugixml.hpp:1299
bool evaluate_boolean(const xpath_node &n) const
Definition pugixml.cpp:13289
xpath_value_type return_type() const
Definition pugixml.cpp:13282
xpath_node_set evaluate_node_set(const xpath_node &n) const
Definition pugixml.cpp:13384
xpath_parse_result _result
Definition pugixml.hpp:1297
xpath_query & operator=(const xpath_query &)
double evaluate_number(const xpath_node &n) const
Definition pugixml.cpp:13310
const xpath_parse_result & result() const
Definition pugixml.cpp:13428
xpath_query(const xpath_query &)
void * _impl
Definition pugixml.hpp:1296
string_t evaluate_string(const xpath_node &n) const
Definition pugixml.cpp:13332
Definition pugixml.hpp:1251
static bool _clone(xpath_variable *var, xpath_variable **out_result)
Definition pugixml.cpp:13110
xpath_variable_set & operator=(const xpath_variable_set &rhs)
Definition pugixml.cpp:13039
static void _destroy(xpath_variable *var)
Definition pugixml.cpp:13137
xpath_variable_set()
Definition pugixml.cpp:13019
void _swap(xpath_variable_set &rhs)
Definition pugixml.cpp:13083
xpath_variable * add(const char_t *name, xpath_value_type type)
Definition pugixml.cpp:13149
bool set(const char_t *name, bool value)
Definition pugixml.cpp:13175
void _assign(const xpath_variable_set &rhs)
Definition pugixml.cpp:13072
xpath_variable * _find(const char_t *name) const
Definition pugixml.cpp:13094
xpath_variable * get(const char_t *name)
Definition pugixml.cpp:13199
xpath_variable * _data[64]
Definition pugixml.hpp:1253
Definition pugixml.hpp:1216
xpath_variable * _next
Definition pugixml.hpp:1221
xpath_value_type type() const
Definition pugixml.cpp:12945
double get_number() const
Definition pugixml.cpp:12955
xpath_variable(const xpath_variable &)
const char_t * get_string() const
Definition pugixml.cpp:12960
bool get_boolean() const
Definition pugixml.cpp:12950
xpath_variable(xpath_value_type type)
Definition pugixml.cpp:12919
xpath_variable & operator=(const xpath_variable &)
const char_t * name() const
Definition pugixml.cpp:12923
bool set(bool value)
Definition pugixml.cpp:12974
const xpath_node_set & get_node_set() const
Definition pugixml.cpp:12966
friend class xpath_variable_set
Definition pugixml.hpp:1217
xpath_value_type _type
Definition pugixml.hpp:1220
Definition pugixml.cpp:1130
const unsigned int format_no_empty_element_tags
Definition pugixml.hpp:286
xml_encoding
Definition pugixml.hpp:249
@ encoding_utf32
Definition pugixml.hpp:257
@ encoding_utf16_le
Definition pugixml.hpp:252
@ encoding_utf32_be
Definition pugixml.hpp:256
@ encoding_utf16_be
Definition pugixml.hpp:253
@ encoding_utf8
Definition pugixml.hpp:251
@ encoding_latin1
Definition pugixml.hpp:259
@ encoding_utf16
Definition pugixml.hpp:254
@ encoding_utf32_le
Definition pugixml.hpp:255
@ encoding_auto
Definition pugixml.hpp:250
@ encoding_wchar
Definition pugixml.hpp:258
PUGI_IMPL_FN deallocation_function PUGIXML_FUNCTION get_memory_deallocation_function()
Definition pugixml.cpp:7878
PUGI_IMPL_FN std::basic_string< wchar_t > PUGIXML_FUNCTION as_wide(const char *str)
Definition pugixml.cpp:7854
PUGI_IMPL_FN allocation_function PUGIXML_FUNCTION get_memory_allocation_function()
Definition pugixml.cpp:7873
const unsigned int format_no_declaration
Definition pugixml.hpp:274
xml_node_type
Definition pugixml.hpp:167
@ node_comment
Definition pugixml.hpp:173
@ node_pcdata
Definition pugixml.hpp:171
@ node_element
Definition pugixml.hpp:170
@ node_doctype
Definition pugixml.hpp:176
@ node_document
Definition pugixml.hpp:169
@ node_declaration
Definition pugixml.hpp:175
@ node_pi
Definition pugixml.hpp:174
@ node_null
Definition pugixml.hpp:168
@ node_cdata
Definition pugixml.hpp:172
const unsigned int parse_trim_pcdata
Definition pugixml.hpp:222
const unsigned int parse_wconv_attribute
Definition pugixml.hpp:205
const unsigned int format_skip_control_chars
Definition pugixml.hpp:289
const unsigned int format_raw
Definition pugixml.hpp:271
const unsigned int format_default
Definition pugixml.hpp:296
void(* deallocation_function)(void *ptr)
Definition pugixml.hpp:1521
const int default_double_precision
Definition pugixml.hpp:298
const unsigned int parse_cdata
Definition pugixml.hpp:192
void *(* allocation_function)(size_t size)
Definition pugixml.hpp:1518
const unsigned int parse_merge_pcdata
Definition pugixml.hpp:235
const unsigned int parse_fragment
Definition pugixml.hpp:226
const unsigned int parse_full
Definition pugixml.hpp:245
const unsigned int parse_embed_pcdata
Definition pugixml.hpp:231
const unsigned int parse_wnorm_attribute
Definition pugixml.hpp:208
const unsigned int format_indent_attributes
Definition pugixml.hpp:283
const unsigned int parse_pi
Definition pugixml.hpp:186
xml_parse_status
Definition pugixml.hpp:1058
@ status_append_invalid_root
Definition pugixml.hpp:1078
@ status_end_element_mismatch
Definition pugixml.hpp:1076
@ status_bad_end_element
Definition pugixml.hpp:1075
@ status_io_error
Definition pugixml.hpp:1062
@ status_bad_attribute
Definition pugixml.hpp:1074
@ status_file_not_found
Definition pugixml.hpp:1061
@ status_internal_error
Definition pugixml.hpp:1064
@ status_bad_start_element
Definition pugixml.hpp:1073
@ status_ok
Definition pugixml.hpp:1059
@ status_bad_comment
Definition pugixml.hpp:1069
@ status_bad_doctype
Definition pugixml.hpp:1071
@ status_out_of_memory
Definition pugixml.hpp:1063
@ status_unrecognized_tag
Definition pugixml.hpp:1066
@ status_bad_cdata
Definition pugixml.hpp:1070
@ status_bad_pcdata
Definition pugixml.hpp:1072
@ status_bad_pi
Definition pugixml.hpp:1068
@ status_no_document_element
Definition pugixml.hpp:1080
PUGI_IMPL_FN std::string PUGIXML_FUNCTION as_utf8(const wchar_t *str)
Definition pugixml.cpp:7842
const unsigned int format_save_file_text
Definition pugixml.hpp:280
const unsigned int parse_escapes
Definition pugixml.hpp:199
const unsigned int format_write_bom
Definition pugixml.hpp:268
PUGI_IMPL_FN void PUGIXML_FUNCTION set_memory_management_functions(allocation_function allocate, deallocation_function deallocate)
Definition pugixml.cpp:7867
const unsigned int format_attribute_single_quote
Definition pugixml.hpp:292
const unsigned int format_indent
Definition pugixml.hpp:265
const unsigned int parse_eol
Definition pugixml.hpp:202
const unsigned int parse_default
Definition pugixml.hpp:240
const unsigned int parse_declaration
Definition pugixml.hpp:211
const unsigned int parse_comments
Definition pugixml.hpp:189
xpath_value_type
Definition pugixml.hpp:1187
@ xpath_type_number
Definition pugixml.hpp:1190
@ xpath_type_boolean
Definition pugixml.hpp:1192
@ xpath_type_none
Definition pugixml.hpp:1188
@ xpath_type_string
Definition pugixml.hpp:1191
@ xpath_type_node_set
Definition pugixml.hpp:1189
const unsigned int parse_ws_pcdata
Definition pugixml.hpp:196
const unsigned int parse_minimal
Definition pugixml.hpp:183
const unsigned int parse_ws_pcdata_single
Definition pugixml.hpp:219
const unsigned int format_no_escapes
Definition pugixml.hpp:277
PUGIXML_CHAR char_t
Definition pugixml.hpp:149
const int default_float_precision
Definition pugixml.hpp:299
std::basic_string< PUGIXML_CHAR > string_t
Definition pugixml.hpp:153
const unsigned int parse_doctype
Definition pugixml.hpp:214
PUGI_IMPL_FN void sort(I begin, I end, const Pred &pred)
Definition pugixml.cpp:8071
PUGI_IMPL_FN void reverse(I begin, I end)
Definition pugixml.cpp:7979
void remove_attribute(xml_attribute_struct *attr, xml_node_struct *node)
Definition pugixml.cpp:1430
void insert_attribute_before(xml_attribute_struct *attr, xml_attribute_struct *place, xml_node_struct *node)
Definition pugixml.cpp:1416
void append_attribute(xml_attribute_struct *attr, xml_node_struct *node)
Definition pugixml.cpp:1367
void prepend_attribute(xml_attribute_struct *attr, xml_node_struct *node)
Definition pugixml.cpp:1386
allocation_function xml_memory_management_function_storage< T >::allocate
Definition pugixml.cpp:221
deallocation_function xml_memory_management_function_storage< T >::deallocate
Definition pugixml.cpp:222
void insert_attribute_after(xml_attribute_struct *attr, xml_attribute_struct *place, xml_node_struct *node)
Definition pugixml.cpp:1402
#define PUGIXML_NULL
Definition pugixml.hpp:133
#define PUGIXML_DEPRECATED
Definition pugixml.hpp:60
#define PUGIXML_NOEXCEPT_IF_NOT_COMPACT
Definition pugixml.hpp:112
#define PUGIXML_FUNCTION
Definition pugixml.hpp:76
#define PUGIXML_NOEXCEPT
Definition pugixml.hpp:104
#define PUGIXML_OVERRIDE
Definition pugixml.hpp:122
#define PUGIXML_CLASS
Definition pugixml.hpp:71
#define PUGIXML_TEXT(t)
Definition pugixml.hpp:142
#define PUGIXML_CHAR
Definition pugixml.hpp:143
Definition pugixml.cpp:1132
Definition pugixml.cpp:1148
Definition pugixml.hpp:1085
const char * description() const
Definition pugixml.cpp:7430
xml_encoding encoding
Definition pugixml.hpp:1093
ptrdiff_t offset
Definition pugixml.hpp:1090
xml_parse_status status
Definition pugixml.hpp:1087
xml_parse_result()
Definition pugixml.cpp:7421
Definition pugixml.hpp:1197
const char * description() const
Definition pugixml.cpp:12914
const char * error
Definition pugixml.hpp:1199
ptrdiff_t offset
Definition pugixml.hpp:1202
xpath_parse_result()
Definition pugixml.cpp:12905