Pugixml Versions Save

Light-weight, simple and fast XML parser for C++ with XPath support

v1.14

7 months ago

Improvements:

  • xml_attribute::set_name and xml_node::set_name now have overloads that accept pointer to non-null-terminated string and size
  • Implement parse_merge_pcdata parsing mode in which PCDATA contents is merged into a single node when original document had comments that were skipped during parsing
  • xml_document::load_file now returns a more consistent error status when given a path to a folder

Bug fixes:

  • Fix assertion in XPath number→string conversion when using non-English locales
  • Fix PUGIXML_STATIC_CRT CMake option to correctly select static CRT when using MSVC and recent CMake

Compatibility improvements:

  • Fix GCC 2.95/3.3 builds
  • Fix CMake 3.27 deprecation warnings
  • Fix XCode 14 sprintf deprecation warning when compiling in C++03 mode
  • Fix clang/gcc warnings -Wweak-vtables, -Wreserved-macro-identifier

Thanks to @DavidKorczynski, @jiangqucheng, @SoapGentoo, @asmaloney, @ArchXUser, @stefanroellin and @vineethkuttan for contributions!

v1.13

1 year ago

Maintenance release.

Release highlights:

  • xml_attribute::set_value, xml_node::set_value and xml_text::set now have overloads that accept pointer to non-null-terminated string and size
  • Fix error handling in xml_document::save_file that could result in the function succeeding while running out of disk space
  • Fix memory leak during error handling of some out-of-memory conditions during xml_document::load

Read full changelog

v1.12.1

2 years ago

Patch release.

This is identical to v1.12 except that it updates PUGIXML_VERSION macro to 1.12. It can be used in applications where PUGIXML_VERSION is needed, but this update is not critical otherwise.

v1.12

2 years ago

Maintenance release.

Release highlights:

  • Fix xml_document move construction (for C++11) and xml_node iterator signatures (for C++20)
  • Add support for VS2022
  • Reorganize CMake settings to have PUGIXML_ prefix and allow more configuration via CMake options, like choosing compact/wchar_t modes.

Read full changelog

v1.11.4

3 years ago

Patch release.

This patch reintroduces pugixml target for CMake when find_package is used, which was accidentally removed from v1.11. It's recommended that pugixml::pugixml target is used instead, but this patch restores pugixml target for existing applications / libraries that depend on it.

The previous patch, v1.11.3, did not handle repeated attempts to call find_package; this patch fixes that particular corner case.

v1.11.3

3 years ago

Patch release.

This patch reintroduces pugixml target for CMake when find_package is used, which was accidentally removed from v1.11. It's recommended that pugixml::pugixml target is used instead, but this patch restores pugixml target for existing applications / libraries that depend on it.

The previous patch, v1.11.2, was not compatible with CMake 3.10; this patch restores compatibility with earlier CMake versions when using imported targets.

v1.11.2

3 years ago

Patch release.

This patch reintroduces pugixml target for CMake when find_package is used, which was accidentally removed from v1.11. It's recommended that pugixml::pugixml target is used instead, but this patch restores pugixml target for existing applications / libraries that depend on it.

The previous patch, v1.11.1, was only compatible with CMake 3.18 and up; this patch restores compatibility with earlier CMake versions when using imported targets.

v1.11.1

3 years ago

Patch release.

This patch reintroduces pugixml target for CMake when find_package is used, which was accidentally removed from v1.11. It's recommended that pugixml::pugixml target is used instead, but this patch restores pugixml target for existing applications / libraries that depend on it.

v1.11

3 years ago

Maintenance release.

Release highlights:

  • Add xml_node::remove_attributes and xml_node::remove_children
  • Add a way to customize floating point precision via xml_attribute::set and xml_text::set overloads
  • XPath parser now limits recursion depth which prevents stack overflow on malicious queries
  • Exported CMake target name changed to pugixml::pugixml; see subsequent patch releases

Read full changelog

v1.10

4 years ago

Maintenance release.

Release highlights:

  • XPath union operation now is ~2x faster to compute and results in a stable order that doesn't depend on pointer order
  • Add format_skip_control_chars formatting flag to skip non-printable ASCII characters
  • Add format_attribute_single_quote formatting flag to use single quotes for attribute values
  • Add Visual Studio .natvis files to improve debugging experience

Read full changelog