Open XML parsers in C/C++

XML is the most common way to manage any kind of data. A lot of free open code packages for manage XML file are available. Here a short list of the most famous written using C/C++ language.

TinyXML-2: rewritten version of the first one TinyXML-1. TinyXML-2 is a simple, small, efficient, C++ XML parser that can be easily integrating into other programs.

RapidXml: is an attempt to create the fastest XML parser possible, while retaining useability, portability and reasonable W3C compatibility. It is an in-situ parser written in modern C++, with parsing speed approaching that of strlen function executed on the same data. Integration with your project will be trivial, because entire library is contained in a single header file, and requires no building or configuration. 

pugixml: is a light-weight C++ XML processing library. Main features are DOM-like interface with rich traversal/modification capabilities, Extremely fast non-validating XML parser which constructs the DOM tree from an XML file/buffer, XPath 1.0 implementation for complex data-driven tree queries, Full Unicode support with Unicode interface variants and automatic encoding conversions. The library is extremely portable and easy to integrate and use.

ticpp: is short for the official name TinyXML++. It is a completely new interface to TinyXML that uses MANY of the C++ strengths. Templates, exceptions, and much better error handling. It is also fully documented in doxygen.

Xerces-C++: is a validating XML parser written in a portable subset of C++. Xerces-C++ makes it easy to give your application the ability to read and write XML data. The parser provides high performance, modularity, and scalability. Source code, samples and API documentation are provided with the parser. For portability, care has been taken to make minimal use of templates, no RTTI, and minimal use of #ifdefs.

The Incredible C++ XML Parser and JSON Parser: rewritten version of the old XMLParser. The Incredible XML Parser is composed of only 2 files: a .cpp file and a .h file. The total size is 220 KB. The particularity of this parser is the ability to manipulate very very large XML files.

XML::Bare: Minimal XML parser implemented via a C state engine. The parser itself is a simple state engine that is less than 500 lines of C. The parser builds a C struct tree from input text. That C struct tree is converted to a Perl hash by a Perl function that makes basic calls back to the C to go through the nodes sequentially. The parser itself will only cease parsing if it encounters tags that are not closed properly. All other inputs will parse, even invalid inputs. To allowing checking for validity, a schema checker is included in the module as well. The schema format is custom and is meant to be as simple as possible. It is based loosely around the way multiplicity is handled in Perl regular expressions.

Libxml2: is the XML C parser and toolkit developed for the Gnome project (but usable outside of the Gnome platform). Libxml2 is known to be very portable, the library should build and work without serious troubles on a variety of systems (Linux, Unix, Windows, CygWin, MacOS, MacOS X, RISC Os, OS/2, VMS, QNX, MVS, VxWorks, ...).

Expat: is an XML parser library written in C. It is a stream-oriented parser in which an application registers handlers for things the parser might find in the XML document (like start tags).


Popular posts from this blog

Access GPIO from Linux user space

Launch an app from Android shell terminal

Android: adb push and read-only file system error