【发布时间】:2010-11-23 19:17:20
【问题描述】:
我想获取一个 XML 文件并替换一个元素的值。例如,如果我的 XML 文件如下所示:
<abc>
<xyz>original</xyz>
</abc>
我想用另一个字符串替换 xyz 元素的原始值(无论它可能是什么),以便生成的文件如下所示:
<abc>
<xyz>replacement</xyz>
</abc>
你会怎么做?我知道我可以编写一个 Java 程序来执行此操作,但我认为这对于替换单个元素的值来说太过分了,并且使用 sed 使用正则表达式进行替换很容易做到这一点。但是,我对这个命令还不是新手,我希望阅读这篇文章的好心人能够为我提供正确的正则表达式来完成这项工作。
一个想法是做这样的事情:
sed s/\<xyz\>.*\<\\xyz\>/\<xyz\>replacement\<\\xyz\>/ <original.xml >new.xml
也许我最好将文件的整行替换为我想要的,因为我会知道元素名称和我想要使用的新值?但这假设有问题的元素位于一行,并且没有其他 XML 数据位于同一行。我宁愿有一个命令,它基本上会用我指定的新字符串替换元素 xyz 的值,而不必担心元素是否都在一行上,等等。
如果 sed 不是这项工作的最佳工具,那么请拨通我的电话以找到更好的方法。
如果有人能引导我朝着正确的方向前进,我将不胜感激,您可能会为我节省数小时的反复试验。提前致谢!
--詹姆斯
【问题讨论】: