我正在攻击一个应该复制XML文件并编辑其中一小部分的东西 它。现在编辑是可以的,但有趣的是,复制可能是相当的 棘手。这基本上是“逆向工程”工作,现在我知道我 应该以某种方式保留一些元素的结束标记(即使元素 仅包含空格或空白)。问题是当HXT读取时
之类的东西<tag>
</tag>
然后将其打印为
<tag/>
我可以告诉它总是使用显式结束标记(或者你称之为的任何标记)
但是,为withOutputXHTML
函数指定writeDocument
选项
有些元素写成
<tag/>
应该按原样复制。
所以,基本上我的问题归结为:«如何复制此文件保留 关闭某些特定元素的标签?»:
<foo>
<bar>
</bar>
<baz/>
</foo>
简单复制程序供参考/实验:
module Main (main) where
import Control.Monad (void)
import Text.XML.HXT.Core
main :: IO ()
main = void $ runX $
readDocument [ withValidate no ] "test.xml" >>>
writeDocument [ withIndent yes
, withOutputEncoding isoLatin1
, withOutputXHTML ] "result.xml"