按照标题。该应用程序是用户编写的配置文件,可能不时需要在某些部分进行更新,否则应保持不变。一个起点就是能够将输入传递给输出不变。
我接受输入<tag></tag>
和<tag/>
非常相同,可能不会在输出上进行区分,但除此之外,我希望尽可能保留XML。
第一次尝试是 Text.XML.HaXml.SAX.saxParse ,但这会在评论后抑制空格,例如:
<!-- next section: -->
<section>
...
</section>
被解析为:
<!-- next section: --><section>
...
</section>
这是一个不可接受的变化。下一次尝试是通过http://pastebin.com/qNyVuBK7处的HXT进行的,除了属性数据中的实体是有效的之外,这种方法很有效。如,
<view UID="&Label;" ifNotNull="&Term;">
变为
<view UID="&Label;" ifNotNull="&Term;">
即使正常文本数据中的实体正确传递。任何人都可以建议如何解决最后一个问题,或者另一种方法来实现目标吗?
似乎https://hackage.haskell.org/package/roundtrip-xml-0.2.0.0可能会有所帮助,但我找不到任何有关如何使用它的文档。