使用XMLSTARLET(图像注释)加入对现有XML属性的值



我正在使用XML注释图像。我正在使用XMLSTARLET和UNIX BASH命令,但是当我尝试将值附加到现有XML属性值时,我会面临一些问题。例如,我有<filename>a</filename>,我想将其制成 <filename>a.jpg</filename>(即与现有值相关的'.jpg'(。

我使用了以下代码,但它完全覆盖了值(即 <filename>.jpg</filename>

脚本:

for name in *.xml; do xmlstarlet ed --inplace -u '/annotation/filename' -v .jpg "$name"; done

xmlstarlet 解决方案:

xmlstarlet ed -L -u '//annotation/filename' -x 'concat(., ".jpg")' input.xml

快速指南:xmlstarlet ed --help

最新更新