I have this xml file.
<body>
<part1>
<para1>abc</para1>
<para2>def</para2>
<ver>1234</ver>
</part1>
</body>
I need to store the value given by ver
i.e. 1234
in a variable.
Different options:
xmlstarlet
:ver=$(xmlstarlet sel -t -m //ver -v . test.xml)
xmllint
(see also Native shell command set to extract node value from XML:ver=$(xmllint --xpath "//ver/text()" test.xml)
gawk
:ver=$(gawk -F "[><]" '/<ver>/{ print $3 }' test.xml)