libxml++ is a C++ wrapper for the libxml2 XML parser library.
Libxml++ is released under the LGPL version 2 or above.
There are several ABI (Application Binary Interface) versions of libxml++. They can be installed in parallel.
libxml++-2.6: Old ABI, not recommended for new applications. Uses Glib::ustring from the glibmm-2.4 ABI.
libxml++-3.0: Uses Glib::ustring from the glibmm-2.4 ABI, therefore has methods that handle UTF-8 characters rather than raw bytes.
libxml++-4.0: Uses Glib::ustring from the newer glibmm-2.68 ABI, therefore has methods that handle UTF-8 characters rather than raw bytes.
libxml++-5.0: Does not depend on glibmm, is not as good at handling UTF-8 strings, has fewer dependencies.
The APIs of libxml++-3.0, libxml++-4.0 and libxml++-5.0 are very similar. The only significant difference is that libxml++-5.0 uses xmlpp::ustring instead of Glib::ustring.
In a new application, choose between libxml++-4.0 with UTF-8 support and libxml++-5.0 with fewer dependencies. Choose libxml++-3.0 only if you want UTF-8 support but don’t have access to the newer glibmm-2.68 ABI (glibmm version 2.68.0 or higher).
You can download libxml++ from GitHub releases or the GNOME download site.
The short manual gives an overview of the libxml++ API. You can also browse online the reference documentation.
The documentation of libxml++-2.6, libxml++-3.0 and libxml++-4.0 is not available online. You can download a tarball from GitHub releases or the GNOME download site, extract it, and view the documentation at untracked/docs/.
Libxml++ uses the GitHub git repository.
Bugs and patches are tracked in GitHub’s issue tracker and pull request tracker.
You can discuss libxml++ questions on GNOME’s Discourse instance, under the Platform/Language bindings category with a cplusplus tag.
There is an old mailing list, which is now closed for new posts. There is an archive of messages here. Please do not email the developers directly.