NoFussXML
NoFussXML is a small, high performance, minimalist C++ XML parser and
generator with an easy to use DOM-style API. Conveniently NoFussXML is
a header only library. It does not support any schemas such as DTD at
present.
Performance
On one test run using this 14MB XML file as a test NoFussXML was
approximately 38% faster at parsing and 21% faster at generating XML
than RapidXml (as hosted by the Cinder C++ library). Unhosted RapidXml
still beats NoFussXML at pure parsing speed but the NoFussXML DOM tree
API is more feature rich providing, for example, attribute maps for fast
O(lg N) complexity attribute lookup and an easily modifiable DOM tree
without the restrictions of RapidXml (e.g. no need to explicitly manage
string object lifetimes). NoFussXML parsing time includes the time
required to create all DOM tree objects including attribute maps.
Here are the results of one test run:
NoFussXML read 14MB XML file: 0.3877 seconds
NoFussXML write 14MB XML file: 0.6939 seconds
Cinder (RapidXml) read 14MB XML file: 0.6261 seconds
Cinder (RapidXml) write 14MB XML file: 0.8645 seconds
Boost.PropertyTree (RapidXml) read 14MB XML file: 1.6820 seconds
Boost.PropertyTree (RapidXml) write 14MB XML file: 0.9755 seconds
http://i42.co.uk/stuff/NoFussXML.htm
/Flibble