复制XML文件,保留某些元素的结束标记

时间:2015-05-03 09:32:40

标签: xml haskell whitespace hxt

我正在攻击一个应该复制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"

0 个答案:

没有答案