2

シェルから解析する必要がある XML ファイルがあります。次のようになります。

<?xml version="1.0" encoding="UTF-8"?>
<things>
    <thing>
        <foo>123</foo>
        <bar>false</bar>
    </thing>
    <thing>
        <bar>true</bar>
        <foo>abc</foo>
    </thing>
</things>

s の子ノードの順序thingは任意であることに注意してください。私の実際のデータでは、それぞれの内部に他の子ノードがいくつかありますthing

現在、 の値fooは一意です。childの値が、たとえば のbar子ノードの値を取得する必要があります。XPath クエリを使用しようとしましたが、うまくいきませんでした。一致しません。または、より一般的なクエリでテストすると、ツリー全体が取得されます。thingfooabcxmllint

$ xmllint --pattern //thing[foo='abc']/bar test.xml
xmllint: No match.
$ xmllint --pattern //thing/bar test.xml
(the whole tree)

私はただ得ることを望んでいましたtrue

私は何を間違っていますか?他の質問で言及されているフラグにアクセスできない--xpathので、それが答えであれば運が悪いです。

4

1 に答える 1