Free XML Parser/Generator Libraries

Free XML Parser/Writer Source Code


Free XML Parser/Generator Libraries

The free and/or open source XML parser libraries listed here let you read, parse and write XML documents from your programs/applications. They are not only useful for dealing with the various XML-based formats around, but they can also be handy if you want to create configuration or data files for your programs. This speeds up development since you do not have to invent a new format and write and debug code to handle it.

Note that the libraries listed vary in their approach. Some only handle the very basic XML format, but are relatively fast XML parsers that are easy to understand and use (since they do the bare minimum). Others are more full-fledged, handling the numerous XML standards from W3C and others. Which you choose will of course depend on your purpose and requirements.

Related Pages

Free XML Parser/Generator Libraries

Libxml2 (C)

Libxml2 is a C XML parser library, with an assortment of bindings/wrappers for other languages if you don't use C (eg, C++, Perl, Delphi/Pascal, Ruby, PHP, Java, Rexx, AppleScript, etc). It implements the XML standard, namespaces, XML Base, XML Inclusions (XInclude) 1.0, XML Catalogs Working Draft, Canonical XML Version 1.0, W3C XML Schemas Part 2, etc. It has partial support for DOM and SAX (minimal). It is released under the MIT License.

RapidXML (C++)

RapidXML is a minimal DOM-style XML parser designed for speed. The entire library is contained in a single header file, so no building or linking is needed. It parses the XML into C++ data structures with no validation or decoding whatsoever; strings, in the same encoding as the source file, are returned for everything. Note that this parser is not a W3C-compliant parser. It is released under the Boost Software License or the MIT License, at your option.

Expat (C)

Expat is a stream-oriented C parser library for XML documents. To use it, your application creates a new parser object, registers callback functions (or handlers) to process the various elements found in the XML document (eg, start and end tags), then call the parser with a buffer pointing to a piece of the document at a time (allowing you to parse huge documents that don't fit into memeory). The library can handle UTF-8 and UTF-16 characters, namespaces and DTDs. This is open source software, with a license that "is the same as the MIT/X Consortium license" (from their README).

Apache Xerces (C++, Java, Perl)

Apache Xerces is a validating XML parser and parser library that lets your program read and write XML documents. The C++ version of the library conforms to the W3C XML 1.0 (3rd edition) and 1.1 specifications (except normalization checking in 1.1); DOM Level 1; DOM Level 2 Core, Traversal and Range; DOM Level 3 Core, Load and Save; SAX 1.0 and 2.0; the W3C namespaces in XML 1.0 and 1.1; XML Schema parts 1 and 2; XML inclusions (XInclude) 1.0 second edition; and Element Traversal Specification. The Perl version, XML::Xerces, is implemented using the C++ library. The Java library supports XML 1.0 (4th edition) and 1.1 (2nd edition); namespaces in XML 1.0 (2nd edition) and 1.1 (2nd edition); XML Schema 1.0 (2nd edition) and 1.1; XML Schema Definition Language (XSD): Component Designators; XInclude 1.0 2nd edition; OASIS XML Catalogs 1.1; SAX 2.02; DOM level 2 Core, Events, Traversal and Range; DOM Level 3 Core, Load and Save; JAXP 1.4; StAX 1.0 Event API; and Element Traversal. Xerces is released under the Apache Software License.

Pugixml (C++)

Pugixml is a light-weight C++ non-validating XML processing library with XPath 1.0 and Unicode support. The library parses your data and stores it in memory as a tree, which can be accessed via API or XPath expressions. The tree can also be modified and saved to a file. Pugixml is released under the MIT License.

XMLIO (C, C++)

XMLIO is a minimal streaming XML parser for C and C++ programs. You set handlers to process the various elements as and when they are encountered. The parser does not handle validation, DOMs, namespaces, etc. It is released under the GNU Library General Public License.

TinyXML (C++)

TinyXML is a minimal DOM-style XML parser that creates C++ objects from your XML data that can be read, modified and saved. There is no validation, handling of DTDs or much of anything else, as such it has a small footprint. It is released under the Zlib licence.

Related Pages

Newest Pages

Popular Pages

How to Link to This Page

It will appear on your page as:

Free XML Parser/Generator Libraries

 


 

thesitewizard.com: Free Webmaster Tutorials, Scripts and Articles

HowtoHaven.com: Free How-To Guides

thefreecountry.com: Free Programmers, Webmasters and Security Resources
If you find this site useful, please link to us.