是否有一个管道友好程序可以采用:
- XML 文档
- 指示目标元素的 XPath 表达式
- 所需替代品
? 类似于sed
但熟悉 XML(元素、空格等)?
答案1
XMLStarlet 可以编辑 XML,并且乐于存在于管道中。
xmlstarlet edit \
-N "b=http://www.springframework.org/schema/beans" \
-u '/b:beans/b:bean[@id="stun1"]/b:constructor-arg/@value' \
-v "stun.example.com \
-L servers.xml
cat servers.xml | xmlstarlet edit -u <xpath> -v <value>
XMLStarlet 是一组命令行实用程序(工具包),使用一组简单的 shell 命令来查询、转换、验证和编辑 XML 文档和文件,其方式类似于使用 UNIX grep、sed、awk、diff、patch、join 等命令的方式。
XMLStarlet 是一个开源免费软件,根据MIT 许可证允许商业和非商业用途的免费使用和分发
答案2
如果你不介意使用/学习 XSLT,那么进程可以实现此目的的实用程序。
答案3
XMLSH 有一个命令固定这可能符合您的参数。
固定评估 xpath 表达式并编辑每个匹配的节点,输出结果文档