SOPE Libraries for XML Processing

This package contains:

  • a SAX2 Implementation for Objective-C
  • SaxObjC driver bundles for:
    • CoreFoundation XML (XML)
    • libxml2 (HTML and XML)
    • Structured Text (stx, thanks to Extrapola :-)
    • libical (iCalendar, vCard)
    • VersitSaxDriver (iCalendar, vCard) - thanks to Max Berger
    • expat (XML, untested)
    • plists (plist, untested)
    • pyx (pyx, untested)
  • an attempt to implement DOM on top of SaxObjC
  • an XML-RPC implementation (without a transport layer)

The libraries are released under the GNU Lesser General Public License.

Graffle Overviews

Tutorials / Examples

  • rss2plist1 - writing a "raw" SAX handler
  • rss2plist2 - writing a SAX handler using SaxMethodCallHandler
  • rssparse - parsing/mapping XML files using SaxObjectDecoder


To build sope-xml you need:

  • a Foundation library (MacOSX, libFoundation or gstep-base)
  • libxml2
  • libical for processing of iCalendar/vCard files
  • expat for trying the Expat SAX driver


Q: If I try to use SaxObjectDecoder my program dumps core (OpenBSD) or complains about -takeValue:forKey: not being found!

A: In case you use sope-xml in conjunction with libFoundation you need to link your program against EOControl from sope-core. Sope-xml uses -takeValue:forKey: which is not implemented in libFoundation (but part of Foundation on both, gstep-base and Cocoa).