xml - 如何使用 xmlstarlet 或类似工具附加或前置到 xml 文件中的属性?

标签 xml linux xpath xmlstarlet

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

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 表达式。

关于xml - 如何使用 xmlstarlet 或类似工具附加或前置到 xml 文件中的属性?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37714378/

相关文章:

java - Intellij maven "cannot resolve symbol"即使打包成功

python - 时间戳 python 中昨天的开始和结束时间

linux - 使用不同的域名在相同的 IP 地址中提供相同的内容

sql-server - MSSQL查询Xml差异顺序

java - 如何将一侧边框和背景添加到一个可绘制对象中?

Ruby 哈希到 XML : How would I create duplicate keys in a hash for repeated XML xpaths?

java - Apache CXF JAXB Marshaller 未正确编码 @XmlAttribute

linux - 使用 bash shell 脚本在 2 个字符串之间提取字符串

java - Selenium WebDriver 匹配相似的 xpath

html - 如何使用 XPath 在 HTML 中搜索标题?