假设我有一堆如何乘以XPATH中的值?
<item price='n' sold='m'>
...
</item>
我想要做的价格*每个项目的销售。我在蟒蛇试图
'//item/(@price * @sold)'
从内LXML,但我不断收到错误“无效表达”。 xmllint命令也是如此。 但是相同的查询在Oxygen xml编辑器中起作用。
我该如何做这项工作?
假设我有一堆如何乘以XPATH中的值?
<item price='n' sold='m'>
...
</item>
我想要做的价格*每个项目的销售。我在蟒蛇试图
'//item/(@price * @sold)'
从内LXML,但我不断收到错误“无效表达”。 xmllint命令也是如此。 但是相同的查询在Oxygen xml编辑器中起作用。
我该如何做这项工作?
计算可以在XPath 2.0中完成,因为我已经更正了!
如果你想选择价格低于或等于出售价格倍数2的所有东西,这是可能的。请参阅: http://en.wikipedia.org/wiki/XPath#Number_functions
您正在使用的XPath表达式需要XPath 2.0。 (您可以通过将XPath版本设置为1.0并再次尝试查询来验证Oxygen。)我不认为lxml支持XPath 2.0。
如果你不能得到支持的XPath 2.0库,然后,而不是试图做这一切里面的XPath,你需要:
<item>
元素使用XPath表达式//item
<item>
元素的上下文
@price * @sold
Downvoting,答案错过这是该语法是在有效点XPath 2.0。 – 2013-02-19 16:21:34