Arabica is an XML toolkit written in Standard C++. It provides SAX, DOM, XPath, and partial XSLT implementations. It delivers UTF-8 encoded std::strings or UCS-2 std::wstrings, but can also accommodate custom string types and alternative encodings.
| Tags | Software Development Libraries Text Processing Markup XML |
|---|---|
| Licenses | BSD Original BSD Revised |
| Operating Systems | OS Independent |
| Implementation | C++ |
Recent releases


Changes: Taggle, a port of John Cowan's TagSoup package, was added. Taggle parses HTML as found in the wild, generating a well-formed stream of SAX events. The Taggle interface is identical to Arabica's XML parser, allowing HTML to be processed with XML tools.


Changes: This is the first release that knowingly breaks existing code, but the changes required are all straightforward. There are several filename changes. Some classes have been moved into different namespaces. This release adds no new functionality.


Changes: This release includes the first release of Mangle, the Arabica XSLT engine. Still actively under development, mangle passes about 85% of the OASIS XSLT conformance test suite and covers most common cases. There are additional incremental improvements to the build system.


Changes: Further improvements were made to the configure system. The build can now be configured without the Boost libraries, in which case the XPath components are skipped. Parser detection is improved, as is detecting the correct libraries for sockets. TreeWalker and NodeFilter were added. MSXML version checking was beefed up. Buffering in convertstream was reworked to reduce the number of dynamic allocations. LexicalHandler and DeclHandler are promoted to be part of the XMLReader interface.


Changes: This release further improves the configuration options, allowing easier selection of the underlying XML parser library. The Visual Studio 2003 solution and project files have been properly updated so that all the tests and examples are built. Compiling Arabica against MSXML also works correctly again. This release introduces no other new functionality.