HaXml is a collection of utilities for parsing, filtering, transforming
and generating XML documents using Haskell.  Its basic facilities include:

* A parser for XML.
* A separate error-correcting parser for HTML.
* An XML validator.
* Pretty-printers for XML and HTML.

For processing XML documents, the following components are provided:

* Combinators is a combinator library for generic XML document processing,
  including transformation, editing, and generation.
* Haskell2Xml is a replacement class for Haskell's Show/Read classes: it
  allows you to read and write ordinary Haskell data as XML documents.
  The DrIFT tool can automatically derive this class for you.
* DtdToHaskell is a tool for translating any valid XML DTD into equivalent
  Haskell types.
* In conjunction with the Xml2Haskell class framework, this allows you to
  generate, edit, and transform documents as normal typed values in programs,
  and to read and write them as human-readable XML documents.
* Finally, Xtract is a grep-like tool for XML documents, loosely based on
  the XPath and XQL query languages.  It can be used either from the
  command-line, or within your own code as part of the library.

Homepage:
https://www.cs.york.ac.uk/fp/HaXml/
