Text.XML.HaXml.SAX

HaXml-1.20.2: Utilities for manipulating XML documents

Text.XML.HaXml.SAX

Description

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.

Synopsis

- data SaxElement
  - = SaxDocTypeDecl DocTypeDecl
  - | SaxProcessingInstruction ProcessingInstruction
  - | SaxComment String
  - | SaxElementOpen Name [Attribute]
  - | SaxElementClose Name
  - | SaxElementTag Name [Attribute]
  - | SaxCharData CharData
  - | SaxReference Reference
- saxParse :: String -> String -> ([SaxElement], Maybe String)

# Documentation

data SaxElement

Constructors

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

saxParse

Arguments

:: 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 `SaxElement`s. If an error occurs, the parsing stops and a string is returned using the `Maybe` type.