I would like to share my updated list of (free) cross-platform C/C++ XML libraries (there might be some repeats, so be patient and merciful ;) )
Btw, an important article on XML is here: http://en.wikipedia.org/wiki/XML
One of the most representative lists of XML parsers is on the wiki (at the moment 17 items in total, yet some of them for Java and other languages.):
Especially interesting are the following libs:
• The Expat XML Parser (written in pure C)
• C++ Wrappers for the Expat XML Parser
• libxml: the XML C parser and toolkit of Gnome
• libxml++ is a C++ wrapper for the libxml XML parser library.
• Xerces-C++ XML parser (APACHE XML project)
• Aforementioned TinyXML
• (its CodeProject’s page)
• ACEXML - A Small and Portable XML Parser (supported by Distributed Object Computing (DOC) Group and part of the ACE architecture)
• Following project is about UPnP but also contains XML parser as a part of the project:
• Portable SDK for UPnP Devices
• Nice pugixml - light-weight, simple and fast XML parser for C++, heavily refactored/reworked version of PugXML:
• And at the end, my favorite - rapidxml
• Imho, the rapidxml is the most suitable for game projects since it is very fast (the fastest!), very small, and can be easily integrated in your app.
* Integration with your project will be trivial, because entire library is contained in a single header file, and requires no building or configuration.
* As a rule of thumb, parsing speed is about 50-100x faster than Xerces DOM, 30-60x faster than TinyXml, 3-12x faster than pugxml, and about 5% - 30% faster than pugixml, the fastest XML parser I know of.