如何使用 shell 脚本从 xml 文件中提取值?

How to extract values from an xml file using shell script?

我有这个 xml 文件。

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

我需要存储 ver 给出的值,即 1234 在一个变量中。

不同的选项:

  1. 使用 xmlstarlet:
ver=$(xmlstarlet sel -t -m //ver -v . test.xml)
  1. 使用 xmllint(另请参阅 Native shell command set to extract node value from XML:
ver=$(xmllint --xpath "//ver/text()" test.xml)
  1. 使用gawk
ver=$(gawk -F "[><]" '/<ver>/{ print  }' test.xml)