、与えられた:XMLStarletで複数の属性をフィルタリングする方法は?例えば
<fruit>
<banana source='Ecuador' category='I'>
<quantity>1</quantity>
</banana>
<banana source='Costa Rica' category='I'>
<quantity>1</quantity>
</banana>
</fruit>
は、私がフィルタリングしたい場合はどのように私はそれを参照します、私は
2に<banana source='Costa Rica' category='II'>
またはその量に
<banana source='Costa Rica' category='I'>
を変更したいと言いますソースと初期カテゴリ値の両方で?
私は次のことをやろうとしている:
xmlstarlet ed -u "/fruit/banana[@source='Ecuador' @category='I']/quantity" -v 2
...しかし、次のように、これは、構文エラーになり:
Invalid predicate: /fruit/banana[@source='Ecuador' @category='I']/quantity
Invalid expression: /fruit/banana[@source='Ecuador' @category='I']/quantity
あなたは[ドキュメント](http://xmlstar.sourceforge.netを読みました/doc/xmlstarlet.pdf)?コマンドオプションを試しましたか?あなたが試したことを見せて、うまくいかなかったことを説明できますか? –
はい、私は、1つの属性を持つ文書、参考文献、および例を読んでいます。 私はxmlstarlet ed -u "/ fruit/banana [@ source = 'エクアドル' /カテゴリ] - 量2 -v 2 example.xml しかし、それは私に与えます: 無効な述語:/ fruit/banana [@ source = 'エクアドル' @カテゴリ= 'I'] /数量 無効な表現:/ fruit/banana [@ source = 'エクアドル' @カテゴリ= 'I'] /数量 – EBM
おそらく 'xpath'とタグ付けされます。 –