1

XML の専門家にはほど遠いので、基本的なチュートリアルを進めてきました。これはxpathにあります。幸いなことに、私の Linux セットアップには、属性に到達するまで問題なく動作する「xpath」コマンドがあります。

xpath -e 'inventory/snack/chips@supplier'  lemonade2.xml 

エラーを与える

Parse of expression inventory/snack/chips@supplier failed - junk after end of expression: @supplier at /usr/share/perl5/XML/XPath/Parser.pm line 127.

私の lemonade2.xml は、サイトから直接コピーして貼り付けたものです。xpath は「@supplier」がなくても正常に機能します。

たぶん、微妙な文字の欠落か何かがあるか、何らかの方法でxpathを台無しにしてしまいました。チュートリアルが非常に古く、廃止された xpath 構文を使用している可能性がありますか? いや、それは既存のコードの多くを壊してしまいますよね?bash 構文に干渉している可能性はありますか? 私は何を間違っていますか?

4

1 に答える 1

2

属性へのアクセスは XPath のパス ステップです。属性の前にスラッシュがありません。

xpath -e 'inventory/snack/chips/@supplier'  lemonade2.xml 

<inventory/>最も外側の要素ですか?次に、その前にルートを宣言することもできます。

xpath -e '/inventory/snack/chips@supplier'  lemonade2.xml 
于 2013-05-03T07:00:37.850 に答える