ghc-taggy
Efficient and simple HTML/XML parsing library
/taggy/ is a simple package for parsing HTML (and should work with XML) written on top of the<http://hackage.haskell.org/package/attoparsec attoparsec>library, which makes it one of the most efficient (space and time consumption wise) on hackage. This is the root module of /taggy/. It reexports everything from the package. See each module's docs for details about the functions and types involved in /taggy/. While we've been testing the parser on /many/ pages, it may still be a bit rough around the edges. Let us know on<http://github.com/alpmestan/taggy/issues github>if you have any problem. If you like to look at your HTML through various optical instruments, feel free to take a look at the companion<http://hackage.haskell.org/package/taggy-lens taggy-lens>package we've put up together. It makes HTML parsing a piece of cake. If you want to parse a document as list of tags and go through it as some kind of stream by just picking what you need, head to "Text.Taggy.Parser" and take a look at 'Text.Taggy.Parser.taggyWith' and 'Text.Taggy.Parser.run'. If you want to parse the document as a DOM tree and traverse it to find the information you need, use 'Text.Taggy.DOM.parseDOM'. This is especially useful when used in conjunction with<http://hackage.haskell.org/package/taggy-lens taggy-lens>. If you build some HTML manually or just transform some existing DOM tree and want to turn it into a 'Data.Text.Lazy.Text' head to "Text.Taggy.Renderer" and look at 'Text.Taggy.Renderer.render'.
BSD-3-Clause