Pure-Haskell utilities for dealing with XML with the conduit package.


Version on this page:1.2.6@rev:1
LTS Haskell 22.30:
Stackage Nightly 2024-07-22:
Latest on Hackage:

See all snapshots xml-conduit appears in

BSD-3-Clause licensed by Michael Snoyman, Aristid Breitkreuz
Maintained by Michael Snoyman
This version can be pinned in stack with:xml-conduit-1.2.6@sha256:93364006c0a45266d619f47e5a4f2e9166bf36286668c571108e04c5f799299c,2739


This package provides parsing and rendering functions for XML. It is based on the datatypes found in the xml-types package. This package is broken up into the following modules:

  • Text.XML: DOM-based parsing and rendering. This is the most commonly used module.

  • Text.XML.Cursor: A wrapper around Text.XML which allows bidirectional traversing of the DOM, similar to XPath. (Note: Text.XML.Cursor.Generic is the same concept, but will work with any node representation.)

  • Text.XML.Unresolved: A slight modification to Text.XML which does not require all entities to be resolved at parsing. The datatypes are slightly more complicated here, and therefore this module is only recommended when you need to deal directly with raw entities.

  • Text.XML.Stream.Parse: Streaming parser, including some streaming parser combinators.

  • Text.XML.Stream.Render: Streaming renderer.

Additionally, the xml-hamlet package provides a more convenient syntax for creating XML documents. For a more thorough tutorial on this library, please see http://www.yesodweb.com/book/xml.



  • Reuse ‘MonadThrow’ and ‘force’ for ‘AttrParser’ #52


  • Added helper functions to render XML elements #48


  • ‘parseText’ becomes ‘parseText’/‘parseTextPos’, depending on the output type #47

  • Allow blaze-builder 0.4

Support monad-control 1.0