から属性名を取得します。I bashを使用して、たとえば、以下のXMLをフィルタリングしたいXML
問題:サブノードATT = "T" のattributが存在する場合 、attribut名は印刷する必要があります。
入力:
<?xml version="1.0" encoding="UTF-8"?>
<general>
<node1>
<subnode att1="a" att2="t" name="test"> </subnode>
<subnode att1="a" name="test2"> </subnode>
<subnode att1="a" name="test3"> </subnode>
<subnode att1="a" att2="t" name="test4"> </subnode>
</node1>
</general>
出力:
test
test4
私はgrepのとxmllintによって試みたが、成功しませんでした。
私の「一時的な」解決策は以下のとおりです。
xmllint --xpath 'string(//general/node1/subnode[@att2="t"]/@name)' file.xml
しかし、そのコマンドの印刷のみ最初に出現した - テスト。
は時々別の属性を印刷し、動作していません。私は修正することができるように – profiler
私は非作業例のためのXMLコンテンツを必要としています。いくつかのケースで質問を更新してください。また、私のコードを使用すると、ATT [any_number] =「t」を含む行をマッチさせたい前提としています。そうじゃないの? att2 = "t"と一致する必要がありますか? –