I think HXT, a XML/HTML processing library in Haskell, has really flexible and powerful methods for traversing and manipulating DOM trees by Arrows. http://adit.io/posts/2012-04-14-working_with_HTML_in_haskell.html
It seems, however, HXT has only String representation for DOM node contents. http://hackage.haskell.org/packages/archive/hxt/9.1.6/doc/html/Text-XML-HXT-DOM-TypeDefs.html#t:XNode
Is it possible to use either of ByteString or Text for HXT? Text is preferred since I am using HXT with Yesod, which seems to mainly use Text.
Neither HXT nor HaXml appear to support either bytestring or text, but if you are working with Yesod you should probably use xml-conduit and html-conduit anyway.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With