如何使用 xmlstarlet 或类似方法将属性追加或附加到 xml 文件中的属性



在文档中没有看到它。这是我正在尝试做的:

echo "<foo><bar t='A' /><bar t='B' /></foo>" | xmlstarlet ed -u "//bar/@t" -v "1_[//bar/@t]"

我想将前缀 1_ 预附加到 t。

预期输出:

<?xml version="1.0"?>
<foo>
  <bar t="1_A"/>
  <bar t="1_B"/>
</foo>

实际输出:

<?xml version="1.0"?>
<foo>
  <bar t="1_[//bar/@t]"/>
  <bar t="1_[//bar/@t]"/>
</foo>

试试这个:

 echo "<foo><bar t='A' /><bar t='B' /></foo>" | 
      xmlstarlet ed -u "//bar/@t" -x 'concat("1_", .)'

-v用于固定值,-x用于 xpath 表达式。