libstudxml: modern C++ XML API

libstudxml is a streaming XML pull parser and streaming XML serializer implementation for modern, standard C++. It has an API that we believe should have already been in Boost or even in the C++ standard library.

  ifstream ifs (argv[1]);
  parser p (ifs, argv[1]);

  p.next_expect (parser::start_element,
  string n = p.element ("name");
  short a = p.element<short> ("age");
  gender g = p.element<gender> ("gender");
  p.next_expect (parser::end_element);


  <name>John Doe</name>

libstudxml is compact, external dependency-free, and reasonably efficient. XML parser is a conforming, non-validating XML 1.0 implementation that is based on tested and proven code.


libstudxml is free, open-source software; you can use, distribute, and/or modify it under the terms of the MIT License.


XML Parsing and Serialization in C++
With libstudxml
An introduction to the XML parsing and serialization APIs with examples.
INSTALL Building and installation instructions.


libstudxml is distributed in source code and comes with the standard autotools build system as well as the VC++ project files for VC versions 9-12. For build instructions refer to the accompanying INSTALL file.

libstudxml-1.0.0 zip | sha1 tar.gz | sha1 tar.bz2 | sha1

For previous versions see the libstudxml download directory. The development version is available from the libstudxml repository.


Community support for libstudxml is available via the studxml-users mailing list. Simply send an email to with the description of a bug or a problem that you encountered. Please follow the Posting Guidelines to receive a prompt reply.