OOFILE | Downloads | Purchasing | Press | Services | Company Information | Soapbox | References | F.A.Q. | HOME


expatpp C++ wrapper for expat - XML Parser Toolkit

Version 20030726 last tested with expat version 1.95

a version compatible with the latest SourceForge version is available on our download pages , currently in beta

Copyright 1999-2003 AD Software. Expatpp is subject to the Mozilla Public License Version 1.0.

Expatpp is an Original Work which works with Expat, Copyright (c) 1998, 1999 James Clark. See expat FAQ for more details on expat.

Our shell can be downloaded from ftp://ftp.oofile.com.au/pub/adsoftware/xml/ and includes the expat release we use, thanks kindly to James Clark for bundling permission.

It is also available via HTTP from http://www.oofile.com.au/files/xml/

The current production version of expat can be downloaded from http://expat.sourceforge.net/

A discussion of the expatppNesting subclass is now available and recommended reading if you have a complex document to parse.

Release News


Extensively expanded to cover all the major functions of expatp v1.95 from SourceForge. Tested using CodeWarrior Pro 8.3 on OS/X 10.2.6, ProjectBuilder, Visual C++ v6 and Embedded Visual C++ v3 with PocketPC 2002 (ARM). The only reason this is being called a beta release is because there are some minor new features in expat that I'd like to add.


Tested with CodeWarrior Pro7.1 and Visual C++ v6 using expat v1.2 with no need to change the expatpp code.


This version of expatpp includes a subclass that makes it very easy to build families of nesting parsers. The nesting approach was used in our OOFILE report-writer which saves report layout and data out to XML files and allows them to be read back into our preview window. The OOFILE source files oofriXML.cpp and oofriXML.h are included as a demonstration of how to use nested parsers and may be freely copied.

Note: the OOF_XMLrepLayoutParser was first developed by one of my programmers before the nesting parser concept and so uses a somewhat awkward state model. Start with OOF_XMLrepParser::startElement to see how the nested parsers are created.

Build Notes

The directory samp_pp contains testexpat.c which is a plain expat demo for CodeWarrior copied from elements.c and modified to open a specified file rather than stdin and a CharacterDataHandler added. It also contains testexpatpp.cpp which is a C++ equivalent using expatpp. It also contains oofriXML.* as a demonstration of how to use nested parsers.

The directory src_pp contains the XML parser object expatpp in two source files, built on top of the expat source. See the header file expatpp.h for instructions.

The directory xpcw contains CodeWarrior Pro4 & Pro5 project to build a demo using testexpatpp.cpp. This project has been built with Apple's Universal Headers 3.2. Unlike earlier project stationery, the MacOS.lib file in the 68K target has been replaced with interface.o due to linker conflicts.

These projects expect the expat source directory to be added within the expatpp directory, ie:


The directory vc_pp contains a Visual C++ v6 project to build static libraries for expatpp. Contributions for other targets gratefully accepted.

When you run the sample, entering a filename such as simpleTable.xml will cause that file to be parsed and the results displayed on the console.