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); parser p (ifs, argv); p.next_expect (parser::start_element, "person", content::complex); string n = p.element ("name"); short a = p.element<short> ("age"); gender g = p.element<gender> ("gender"); p.next_expect (parser::end_element);
<person> <name>John Doe</name> <age>23</age> <gender>male</gender> </person>
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.
I've written at least a streaming WikiMedia dump parser with it, and it was really, really simple, and the resulting code is quite short. I much prefer this approach over SAX, which takes a lot longer to actually write."
libstudxml is free, open-source software; you can use, distribute,
and/or modify it under the terms of the MIT
|Designing XML API for Modern C++||Video of a talk given at C++Now 2014 that introduced
|XML Parsing and Serialization in C++
|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
Community support for
libstudxml is available via the
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.