hxt-7.1: src/Text/XML/HXT/DOM/FormatXmlTree.hs
-- |
-- format a xml tree in tree representation
--
-- Version : $Id: FormatXmlTree.hs,v 1.2 2006/05/01 18:56:24 hxml Exp $
module Text.XML.HXT.DOM.FormatXmlTree
( formatXmlTree
, formatXmlContents
)
where
import Text.XML.HXT.DOM.XmlTree
-- ------------------------------------------------------------
formatXmlContents :: XmlFilter
formatXmlContents t
= [mkXTextTree (formatXmlTree t)]
formatXmlTree :: XmlTree -> String
formatXmlTree
= formatTree xnode2String
xnode2String :: XNode -> String
xnode2String (XTag n al)
= "XTag " ++ showQn n ++ concatMap showAl al
xnode2String (XPi n al)
= "XPi " ++ showQn n ++ concatMap showAl al
xnode2String n
= show n
showAl :: XmlTree -> String
showAl (NTree (XAttr an) av)
= "\n| " ++ showQn an ++ "=" ++ show (xshow av)
showAl t
= show t
showQn :: QName -> String
showQn n
| null ns
= show $ qualifiedName n
| otherwise
= show $ "{" ++ ns ++ "}" ++ qualifiedName n
where
ns = namespaceUri n
-- ------------------------------------------------------------