libxml++ is a C++ wrapper for the libxml2 XML parser library.


Libxml++ is released under the LGPL version 2 or above

ABI Versions

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, but has fewer dependencies.


You can download libxml++ from the GNOME download site.

Required Libraries



The short manual gives an overview of the libxml++ API. You can also browse online the reference documentation.

Other ABI Versions

libxml++-2.6: manual and reference documentation

libxml++-3.0: manual and reference documentation

libxml++-4.0: manual and reference documentation

This documentation is frozen on the web. It does not document the latest releases. If you want newer documentation, 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.