我需要更新XML文件中的几个节点(只需用一个文本元素替换另一个),这样生成的XML文件将保留所有格式(如果可能)。
例如,以下是源文档:
<project>
<!-- Some long comment -->
<!-- On several lines -->
<name>Name</name> <!-- And here too -->
<version>1.2.3</version>
</project>
这是必需的结果文档(请注意版本已更改):
<project>
<!-- Some long comment -->
<!-- On several lines -->
<name>Name</name> <!-- And here too -->
<version>3.2.1</version>
</project>
因此,结果会保留源的所有格式,并且只有版本标记内容已更改。
不幸的是,我找不到使用标准Clojure(或Java)库的方法。当然,它们确实支持XML的字符串表示的基本缩进,但对我来说还不够。
有没有办法用一些XML操作库(最好是在Clojure中,但我猜Java也很好),或者我必须回到纯文本/ regexp替换? (真的,我不想要XML tags leaking from my eyes,这应该是最后的手段......)
答案 0 :(得分:0)
也许是一种混合方法,使用clojure.xml解析XML以查找要替换的确切文本,并确保更改正确的位置。然后使用字符串替换来更改它。我是hesatent to advise using regular expressions to parse XML