3

如何使用 HXT 保留 HTML 实体?SystemConfigwithSubstHTMLEntities似乎没有改变任何东西:

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

谢谢

4

1 回答 1

1

您可以使用writeDocumentToString来自Text.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>被解析为标签)

于 2013-03-13T23:04:04.273 回答