首页 > 解决方案 > 如何使用 shell 脚本从 xml 文件中提取值?

问题描述

我有这个 xml 文件。

<body>
<part1>
   <para1>abc</para1>
   <para2>def</para2>
   <ver>1234</ver>
</part1>    
</body>

我需要将verie给出的值存储1234在一个变量中。

标签: xmlshellawkgrepxmllint

解决方案


不同的选择:

  1. 使用xmlstarlet
ver=$(xmlstarlet sel -t -m //ver -v . test.xml)
  1. 使用xmllint(另请参阅从 XML 中提取节点值的 Native shell 命令集
ver=$(xmllint --xpath "//ver/text()" test.xml)
  1. 使用gawk
ver=$(gawk -F "[><]" '/<ver>/{ print $3 }' test.xml)

推荐阅读