2013-03-13 67 views
3

如何使用HXT保留HTML实体? 的withSubstHTMLEntities SystemConfig似乎并没有改变什么:请勿用HXT替代HTML实体

runX $ xshow $ readString [] "<doc><p> &gt; </p></doc>"

runX $ xshow $ readString [withSubstHTMLEntities no] "<doc><p> &gt; </p></doc>"

都产生

["</ source=\"\"<doc><p> &gt; </p></doc>\"\" transfer-URI=\"string:\" transfer-Message=\"OK\" transfer-Status=\"200\"><doc><p> > </p></doc><//>"]

我绝对不知道在何处看。我几乎尝试了所有我能传递给readDocumentreadString

感谢

回答

1

您可以使用writeDocumentToStringText.XML.HXT.Arrow.WriteDocument其他选项。签名是:

writeDocumentToString :: ArrowXml a => SysConfigList -> a XmlTree String 

所以,举例来说,

f :: IO String 
f = do 
    let arr = readString [] "<doc><p> &lt;tag&gt; </p></doc>" >>> writeDocumentToString [] 
    results <- runX arr 
    return . head $ results 

f将返回IO "<doc><p> &lt;tag> </p></doc>"。 (这足以避免<tag>被解析为标签)