2

私がたくさん持っているとしましょう

<item price='n' sold='m'>
...
</item>

各商品の価格※販売をしたいです。やっています

'//item/(@price * @sold)' 

Pythonのlxml内からですが、「無効な式」というエラーが発生し続けます。xmllintコマンドでも同じことが起こります。ただし、同じクエリがOxygenxmlエディターで機能します。

これを機能させるにはどうすればよいですか?

4

2 に答える 2

5

使用しているXPath式にはXPath2.0が必要です。(これは、XPathバージョンを1.0に設定し、クエリを再試行することで、Oxygenで確認できます。)lxmlはXPath2.0をサポートしていないと思います。

XPath 2.0をサポートするライブラリを取得できない場合は、XPath内ですべてを実行しようとする代わりに、次のことを行う必要があります。

  • <item>XPath式を使用するなど、XPathの要素を選択します//item
  • Pythonでこれらの要素をループします
  • 各要素のコンテキストで<item>、XPath式を評価します@price * @sold
于 2013-02-19T14:02:14.653 に答える
-1

修正されたので、XPath2.0で計算を行うことができます。

価格が販売価格×2以下のすべてを選択したい場合は可能です。次を参照してください:http: //en.wikipedia.org/wiki/XPath#Number_functions

于 2013-02-19T14:00:20.150 に答える