The latest version of hexpat is 0.20.13-3.

hexpat

Version 0.18.1 revision 0 uploaded by StephenBlackheath.

Package meta

Synopsis
XML parser/formatter based on expat
Description

This package provides a general purpose Haskell XML library using Expat to do its parsing (http://expat.sourceforge.net/ - a fast stream-oriented XML parser written in C). It is extensible to any string type, with String, ByteString and Text provided out of the box.

Basic usage: Parsing a tree (Tree), formatting a tree (Format). Other features: Helpers for processing XML trees (Proc), trees annotated with XML source location (Annotated), XML cursors (Cursor), SAX-style parse (SAX), and access to the low-level interface in case speed is paramount (Internal.IO).

The design goals are speed, speed, speed, interface simplicity and modularity.

For introduction and examples, see the Text.XML.Expat.Tree module. For benchmarks, http://haskell.org/haskellwiki/Hexpat/

If you want to do interactive I/O, an obvious option is to use lazy parsing with one of the lazy I/O functions such as hGetContents. However, this can be problematic in some applications because it doesn't handle I/O errors properly and can give no guarantee of timely resource cleanup. In these cases, chunked I/O is a better approach: Take a look at the hexpat-iteratee package.

IO is filed under Internal because it's low-level and most users won't want it. The other Internal modules are re-exported by Annotated and Tree, so you won't need to import them directly.

Credits to Iavor Diatchki and the xml (XML.Light) package for Proc and Cursor.

INSTALLATION: Unix install requires an OS package called something like libexpat-dev. On MacOSX, expat comes with Apple's optional X11 package, or you can install it from source. To install on Windows, first install the Windows binary that's available from http://expat.sourceforge.net/, then type (assuming you're using v2.0.1):

cabal install hexpat --extra-lib-dirs="C:\Program Files\Expat 2.0.1\Bin" --extra-include-dirs="C:\Program Files\Expat 2.0.1\Source\Lib"

Ensure libexpat.dll can be found in your system PATH (or copy it into your executable's directory).

ChangeLog: 0.15 changes intended to fix a (rare) "error: a C finalizer called back into Haskell." that seemed only to happen only on ghc6.12.X; 0.15.1 Fix broken Annotated parse; 0.16 switch from mtl to transformers; 0.17 fix mapNodeContainer & rename some things.; 0.18 rename defaultEncoding to overrideEncoding.

Author
Stephen Blackheath [blackh] (the primary author), Doug Beardsley, Gregory Collins, Evan Martin (who started the project), Matthew Pocock [drdozer]
Bug reports
n/a
Category
XML
Copyright
(c) 2009 Doug Beardsley <mightybyte@gmail.com>, (c) 2009-2010 Stephen Blackheath <http://blacksapphire.com/antispam/>, (c) 2009 Gregory Collins, (c) 2008 Evan Martin <martine@danga.com>, (c) 2009 Matthew Pocock <matthew.pocock@ncl.ac.uk>, (c) 2007-2009 Galois Inc.
Homepage
http://haskell.org/haskellwiki/Hexpat/
Maintainer
http://blacksapphire.com/antispam/
Package URL
n/a
Stability
beta

Components