是否可以解析然后修改XML文档中的单个元素?
我目前正在ruby中编写一个脚本,需要修改xml文件中的值(由xpath指定)。我目前正在使用REXML库来执行此操作:
xmldocument = Document.new(File.new(filename))
property = XPath.first(xmldocument, "/parent/element/property")
property.text = "New property value"
puts xmldocument
输入xml是:
<?xml version="1.0" encoding="UTF-8"?>
<parent>
<element>
<property>Old property value</property>
<verbose />
</element>
...
(more elements here)
...
</parent>
输出是:
<?xml version='1.0' encoding='UTF-8'?>
<parent>
<element>
<property>New property value</property>
<verbose/>
</element>
...
(more elements here)
...
</parent>
您应该注意到输出xml稍微重新格式化,并且超出了我想要的更改。例如,代码<verbose />
更改为<verbose/>
,双引号将替换为第一行中的单引号。
修改xml文件的给定元素并保留文件的其余部分的最佳方法是什么?理想情况下,有一个Ruby的解决方案,但我很想知道其他语言的解决方案,如Java。