{-# LANGUAGE NoMonomorphismRestriction #-} module XML.XMLUtilities ( atTag , text , textAtTag , parseXML ) where import Data.Tree.NTree.TypeDefs import Text.XML.HXT.Core atTag :: ArrowXml cat => String -> cat (NTree XNode) XmlTree atTag tag = deep (isElem >>> hasName tag) text :: ArrowXml cat => cat (NTree XNode) String text = getChildren >>> getText textAtTag :: ArrowXml cat => String -> cat (Data.Tree.NTree.TypeDefs.NTree XNode) String textAtTag tag = atTag tag >>> text parseXML :: String -> IOStateArrow s b XmlTree parseXML = readDocument [withValidate no, withRemoveWS yes]