HaXml-1.24: Utilities for manipulating XML documents

Safe HaskellNone



A streaming XML parser, using a method known as SAX. SAX isn't really a standard, but an implementation, so it's just an "SAX-like" parser. This module allows you parse an XML document without having to evaluate it as a whole. This is needed for protocols like jabber, which use xml streams for communication.



data SaxElement Source


SaxDocTypeDecl DocTypeDecl

A doctype declaration occured(<!DOCTYPE>)

SaxProcessingInstruction ProcessingInstruction

A processing instruction occured (<??>)

SaxComment String

A comment occured (<!-- -->)

SaxElementOpen Name [Attribute]

An element was opened (<>)

SaxElementClose Name

An element was closed (</>)

SaxElementTag Name [Attribute]

An element without content occured (</>)

SaxCharData CharData

Some string data occured

SaxReference Reference

A reference occured



:: String

The filename

-> String

The content of the file

-> ([SaxElement], Maybe String)

A tuple of the parsed elements and Nothing, if no error occured, or Just String if an error occured.

saxParse file content takes a filename and the string content of that file and generates a stream of SaxElements. If an error occurs, the parsing stops and a string is returned using the Maybe type.