summaryrefslogtreecommitdiff
path: root/src/pugixml.hpp
AgeCommit message (Collapse)Author
2014-02-11Implement document fragment parsing.Arseny Kapoulkine
Introduce a notable behavior change in default parsing mode: documents without a document element node are now considered invalid. This is technically a breaking change, however the amount of documents it affects is very small, all parsed data still persists, and lack of this check results in very confusing behavior in a number of cases. In order to be able to parse documents without an element node, a fragment parsing flag is introduced. Parsing a buffer in fragment mode treats the buffer as a fragment of a valid XML. As a consequence, top-level PCDATA is added to the tree; additionally, there are no restrictions on the number of nodes -- so documents without a document element are considered valid. Due to the way parsing works internally, load_buffer_inplace occasionally can not preserve the document contents if it's parsed in a fragment mode. While unfortunate, this problem is fundamental; since the use case is relatively obscure, hopefully documenting this shortcoming will be enough. git-svn-id: https://pugixml.googlecode.com/svn/trunk@980 99668b35-9821-0410-8761-19e4c4f06640
2014-02-10Update PUGIXML_VERSION defineArseny Kapoulkine
git-svn-id: https://pugixml.googlecode.com/svn/trunk@973 99668b35-9821-0410-8761-19e4c4f06640
2014-02-08Update version to 1.4 and copyright year to 2014.Arseny Kapoulkine
Add tentative changelog for 1.4 to the documentation. Since Google Code no longer allows file upload, replace download links with GitHub release links. git-svn-id: http://pugixml.googlecode.com/svn/trunk@968 99668b35-9821-0410-8761-19e4c4f06640
2014-02-08Enable long long support for C++11 and for MSVC 2008+Arseny Kapoulkine
git-svn-id: http://pugixml.googlecode.com/svn/trunk@967 99668b35-9821-0410-8761-19e4c4f06640
2014-02-08Simplify header-only mode usage: it's sufficient to define ↵Arseny Kapoulkine
PUGIXML_HEADER_ONLY anywhere now, source is automatically included git-svn-id: http://pugixml.googlecode.com/svn/trunk@964 99668b35-9821-0410-8761-19e4c4f06640
2014-02-08Implement long long support if PUGIXML_HAS_LONG_LONG is defined ↵Arseny Kapoulkine
(autodetection is not implemented yet) git-svn-id: http://pugixml.googlecode.com/svn/trunk@962 99668b35-9821-0410-8761-19e4c4f06640
2014-01-27Change xml_named_node_iterator to be bidirectional and to match ↵Arseny Kapoulkine
xml_node_iterator in terms of internals git-svn-id: http://pugixml.googlecode.com/svn/trunk@960 99668b35-9821-0410-8761-19e4c4f06640
2013-07-27Clarify value() behavior in header comments; hopefully that'll help with ↵arseny.kapoulkine@gmail.com
value vs child_value confusion. git-svn-id: http://pugixml.googlecode.com/svn/trunk@954 99668b35-9821-0410-8761-19e4c4f06640
2012-12-07Compatibility fixes (fixed warnings in gcc, msvc7, fixed errors in bcc, cw, ↵arseny.kapoulkine@gmail.com
msvc6) git-svn-id: http://pugixml.googlecode.com/svn/trunk@939 99668b35-9821-0410-8761-19e4c4f06640
2012-12-07Implement xml_node::append_buffer as a faster alternative to assembling ↵arseny.kapoulkine@gmail.com
documents from fragments (compared to parse & clone) git-svn-id: http://pugixml.googlecode.com/svn/trunk@936 99668b35-9821-0410-8761-19e4c4f06640
2012-10-31Adjust parsing so that it is possible to parse a document fragment into an ↵arseny.kapoulkine@gmail.com
existing subtree; can be used to implement append_buffer. git-svn-id: http://pugixml.googlecode.com/svn/trunk@922 99668b35-9821-0410-8761-19e4c4f06640
2012-08-02Add xml_object_range::iterator to work around Boost.ForEach errors without ↵arseny.kapoulkine@gmail.com
BOOST_FOREACH_RUN_TIME_CONST_RVALUE_DETECTION feature (i.e. SunCC 12). Fixes issue 164. git-svn-id: http://pugixml.googlecode.com/svn/trunk@919 99668b35-9821-0410-8761-19e4c4f06640
2012-06-28Add PUGIXML_CLASS to xml_named_node_iterator to make dllexport possible. ↵arseny.kapoulkine@gmail.com
Fixes issue 161. git-svn-id: http://pugixml.googlecode.com/svn/trunk@917 99668b35-9821-0410-8761-19e4c4f06640
2012-05-02Iterator improvements: safety assertions in xml_named_node_iterator, ↵v1.2arseny.kapoulkine@gmail.com
const_cast workaround for BCC32 bug git-svn-id: http://pugixml.googlecode.com/svn/trunk@915 99668b35-9821-0410-8761-19e4c4f06640
2012-04-03Updated version number and copyright year everywherearseny.kapoulkine@gmail.com
git-svn-id: http://pugixml.googlecode.com/svn/trunk@897 99668b35-9821-0410-8761-19e4c4f06640
2012-04-03Whitespace-only change: set noexpandtab & retab!arseny.kapoulkine@gmail.com
git-svn-id: http://pugixml.googlecode.com/svn/trunk@896 99668b35-9821-0410-8761-19e4c4f06640
2012-04-03Fixed xml_named_node_iterator category for MSVC6/7, IC8 and SunCCarseny.kapoulkine@gmail.com
git-svn-id: http://pugixml.googlecode.com/svn/trunk@895 99668b35-9821-0410-8761-19e4c4f06640
2012-04-03Added xml_attribute::as_string and xml_text::as_string, added default value ↵arseny.kapoulkine@gmail.com
to all as_* member functions git-svn-id: http://pugixml.googlecode.com/svn/trunk@893 99668b35-9821-0410-8761-19e4c4f06640
2012-03-27xml_object_range now supports Boost.ForEacharseny.kapoulkine@gmail.com
git-svn-id: http://pugixml.googlecode.com/svn/trunk@890 99668b35-9821-0410-8761-19e4c4f06640
2012-03-27Introduced xml_named_node_iterator, introduced xml_node::children() and ↵arseny.kapoulkine@gmail.com
xml_node::attributes() for C++11 range-based for loop git-svn-id: http://pugixml.googlecode.com/svn/trunk@889 99668b35-9821-0410-8761-19e4c4f06640
2012-03-23Added format_save_file_text flag for opening the file in text modearseny.kapoulkine@gmail.com
git-svn-id: http://pugixml.googlecode.com/svn/trunk@883 99668b35-9821-0410-8761-19e4c4f06640
2012-03-23Const-correctness 'fixes' (it's impossible to be const-correct here so ↵arseny.kapoulkine@gmail.com
remove redundant member) git-svn-id: http://pugixml.googlecode.com/svn/trunk@879 99668b35-9821-0410-8761-19e4c4f06640
2012-03-23Added xml_text::data() (for regular xml_node operations, i.e. remove_child)arseny.kapoulkine@gmail.com
git-svn-id: http://pugixml.googlecode.com/svn/trunk@876 99668b35-9821-0410-8761-19e4c4f06640
2012-03-23Added xml_text &&/|| operators for Borland C++arseny.kapoulkine@gmail.com
git-svn-id: http://pugixml.googlecode.com/svn/trunk@874 99668b35-9821-0410-8761-19e4c4f06640
2012-03-23Moved default value selection logic into get_value functions, added ↵arseny.kapoulkine@gmail.com
xml_node::text() accessor git-svn-id: http://pugixml.googlecode.com/svn/trunk@873 99668b35-9821-0410-8761-19e4c4f06640
2012-03-23Implemented xml_text helper (work in progress)arseny.kapoulkine@gmail.com
git-svn-id: http://pugixml.googlecode.com/svn/trunk@872 99668b35-9821-0410-8761-19e4c4f06640
2012-03-20STL forward declaration experiment failed; revert to using STL headers. ↵arseny.kapoulkine@gmail.com
Reasons: bugs in old compilers (i.e. SunCC, DMC, BCC require using the same names in forward declarations as in actual declarations), incompatibility between buggy compilers and different STL versions (i.e. SunCC has two STL versions with mismatching names), problems with C++0x inline namespaces (used in Clang libc++, see http://llvm.org/bugs/show_bug.cgi?id=5590), and this is an undefined behavior so other problems may come up. git-svn-id: http://pugixml.googlecode.com/svn/trunk@868 99668b35-9821-0410-8761-19e4c4f06640
2012-03-14Dereferemce operators in both iterators are now const; this fixes iterator ↵arseny.kapoulkine@gmail.com
compatibility with parts of Boost Iterator (i.e. filter_iterator). It is now possible to damage the state of const_iterator by directly mutating internal handle - working around that introduces additional performance penalties and is generally extremely unlikely to be useful - constant iterator objects are rarely used. git-svn-id: http://pugixml.googlecode.com/svn/trunk@858 99668b35-9821-0410-8761-19e4c4f06640
2012-03-14Different versions of RWSTL have different headers; revert the previous ↵arseny.kapoulkine@gmail.com
change and instead introduce PUGIXML_NO_STL_FWDDECL macro (that disables forward declaration of STL classes, which is not compliant). git-svn-id: http://pugixml.googlecode.com/svn/trunk@857 99668b35-9821-0410-8761-19e4c4f06640
2012-03-14Fixed SunCC compilation when using RWSTL instead of STLport; should fix ↵arseny.kapoulkine@gmail.com
issue 101. git-svn-id: http://pugixml.googlecode.com/svn/trunk@856 99668b35-9821-0410-8761-19e4c4f06640
2012-03-14Implemented optional header-only mode (still need to do a couple of fixes ↵arseny.kapoulkine@gmail.com
for rare compilers, but it seems to work on the majority of configurations). Tests work in header-only mode, but testing is not enabled yet (still a bit more work to be done, and compiling header-only tests is up to 4 times slower, so we can't test more than one-two configurations per toolset) git-svn-id: http://pugixml.googlecode.com/svn/trunk@855 99668b35-9821-0410-8761-19e4c4f06640
2011-12-20Introduced encoding_latin1 support (conversion on loading, conversion on ↵arseny.kapoulkine
saving, encoding name in declaration in document::save) git-svn-id: http://pugixml.googlecode.com/svn/trunk@829 99668b35-9821-0410-8761-19e4c4f06640
2011-12-09Added PUGIXML_VERSION define to enable preprocessor-based version checks in ↵arseny.kapoulkine
case compatibility workarounds are needed git-svn-id: http://pugixml.googlecode.com/svn/trunk@827 99668b35-9821-0410-8761-19e4c4f06640
2011-12-09Introduced parse_ws_pcdata_single flag: only parses whitespace-only PCDATA ↵arseny.kapoulkine
if it's the only child of the parent node (middle ground between default flags and parse_ws_pcdata) git-svn-id: http://pugixml.googlecode.com/svn/trunk@825 99668b35-9821-0410-8761-19e4c4f06640
2011-09-10Added format_no_escapes flagarseny.kapoulkine
git-svn-id: http://pugixml.googlecode.com/svn/trunk@819 99668b35-9821-0410-8761-19e4c4f06640
2011-08-19Fixed unspecified bool conversion for MSVC CLR for the case when pugixml is ↵arseny.kapoulkine
compiled as unmanaged and calling code is compiled as managed. Fixes issue 121. git-svn-id: http://pugixml.googlecode.com/svn/trunk@817 99668b35-9821-0410-8761-19e4c4f06640
2010-11-12Improved STLport support (now code compiles fine if STLport is in its own ↵arseny.kapoulkine
namespace and does #define std), fixed AirPlay SDK compilation git-svn-id: http://pugixml.googlecode.com/svn/trunk@796 99668b35-9821-0410-8761-19e4c4f06640
2010-10-31Updated version to 1.0 everywherearseny.kapoulkine
git-svn-id: http://pugixml.googlecode.com/svn/trunk@789 99668b35-9821-0410-8761-19e4c4f06640
2010-10-31Added xml_document::reset() function with document parameterarseny.kapoulkine
git-svn-id: http://pugixml.googlecode.com/svn/trunk@786 99668b35-9821-0410-8761-19e4c4f06640
2010-10-26Added xml_document::reset, added append/prepend/insert child overloads for ↵arseny.kapoulkine
elements (with explicit name) git-svn-id: http://pugixml.googlecode.com/svn/trunk@779 99668b35-9821-0410-8761-19e4c4f06640
2010-10-22Added a workaround for GCC 4.2 bogus warningarseny.kapoulkine
git-svn-id: http://pugixml.googlecode.com/svn/trunk@778 99668b35-9821-0410-8761-19e4c4f06640
2010-10-22XPath: Moved implementation details to anonymous namespacearseny.kapoulkine
git-svn-id: http://pugixml.googlecode.com/svn/trunk@775 99668b35-9821-0410-8761-19e4c4f06640
2010-10-19Added prepend_attribute, prepend_child and prepend_copy functionsarseny.kapoulkine@gmail.com
git-svn-id: http://pugixml.googlecode.com/svn/trunk@769 99668b35-9821-0410-8761-19e4c4f06640
2010-10-18Added xml_document::document_element functionarseny.kapoulkine
git-svn-id: http://pugixml.googlecode.com/svn/trunk@768 99668b35-9821-0410-8761-19e4c4f06640
2010-10-18Fixed internal_object() const-correctness, added xml_node::hash_value and ↵arseny.kapoulkine
xml_attribute::hash_value functions git-svn-id: http://pugixml.googlecode.com/svn/trunk@767 99668b35-9821-0410-8761-19e4c4f06640
2010-10-14Updated site URL everywherearseny.kapoulkine
git-svn-id: http://pugixml.googlecode.com/svn/trunk@766 99668b35-9821-0410-8761-19e4c4f06640
2010-09-26Added DOCTYPE node and parse_doctype flag (the node contains DOCTYPE value ↵arseny.kapoulkine
so that the document contents can be preserved) git-svn-id: http://pugixml.googlecode.com/svn/trunk@756 99668b35-9821-0410-8761-19e4c4f06640
2010-09-22Minor UTF8 conversion refactoring, added as_utf8 and as_wide overloads with ↵arseny.kapoulkine
string arguments git-svn-id: http://pugixml.googlecode.com/svn/trunk@749 99668b35-9821-0410-8761-19e4c4f06640
2010-09-22Removed document_order() function, added internal_object() accessor and ↵arseny.kapoulkine
exposed xml_node/xml_attribute constructor from internal object pointer (this makes implementing fast binding to scripting languages easier) git-svn-id: http://pugixml.googlecode.com/svn/trunk@747 99668b35-9821-0410-8761-19e4c4f06640
2010-09-21Major header cleanup: removed redundant comments (single-line function/type ↵arseny.kapoulkine
descriptions are left for convenience), removed parse()/as_utf16(), removed deprecated function tests git-svn-id: http://pugixml.googlecode.com/svn/trunk@746 99668b35-9821-0410-8761-19e4c4f06640