私のXMLは次のとおりです
<list1>
<list2 id="abc" value="yes"></list2>
<list2 id="xyz" value="no"></list2>
<list2 id="def" value="yes"></list2>
<list1>
使用xmllint
しかし、正しい出力を得ることはできません。 「abc」を提供する上記のxmlを照会すると、「yes」を返す必要があります。
ベストアンサー1
XPathstring()
関数を使用して属性値のみを取得できますvalue
。
$ xmllint --xpath 'string(//list1/list2[@id="abc"]/@value)' data.xml
yes
一般的な構文を使用して変数としてキャプチャできますbash
。
value=$(
xmllint --xpath \
'string(//list1/list2[@id="abc"]/@value)' data.xml
)
それから:
echo $value
結果:
yes