Arabica is an XML parser toolkit, providing SAX2, DOM and XPath implementations, written in Standard C++.
SAX is an event-based XML processing API. Arabica is a full SAX2 implementation, including the optional interfaces and helper classes. It provides uniform SAX2 wrappers for the expat parser, Xerces, libxml and, on Windows, for the Microsoft XML parser.
XPath is a language for addressing parts of an XML document. Arabica implements XPath 1.0 over its DOM implementation.
Arabica is written in Standard C++ and should be portable to most platforms. It is parameterised on string type. Out of the box, it can provide UTF-8 encoded std::strings or UTF-16 encoded std::wstrings, but can easily be customised for arbitrary string types.