如何使用HXT保留HTML实体?
withSubstHTMLEntities
SystemConfig似乎没有改变任何内容:
runX $ xshow $ readString [] "<doc><p> > </p></doc>"
和
runX $ xshow $ readString [withSubstHTMLEntities no] "<doc><p> > </p></doc>"
都产生
["</ source=\"\"<doc><p> > </p></doc>\"\" transfer-URI=\"string:\" transfer-Message=\"OK\" transfer-Status=\"200\"><doc><p> > </p></doc><//>"]
我完全不知道在哪里看。我几乎尝试了所有其他选项,我可以传递给readDocument
或readString
由于
答案 0 :(得分:1)
您可以使用writeDocumentToString
中的Text.XML.HXT.Arrow.WriteDocument
。签名是:
writeDocumentToString :: ArrowXml a => SysConfigList -> a XmlTree String
所以,例如,
f :: IO String
f = do
let arr = readString [] "<doc><p> <tag> </p></doc>" >>> writeDocumentToString []
results <- runX arr
return . head $ results
f
将返回IO "<doc><p> <tag> </p></doc>"
。 (这足以避免将<tag>
解析为标记)