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.

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.

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.