假设我有一堆
<item price='n' sold='m'>
...
</item>
我想在每件商品上出售价格*。我正在尝试
'//item/(@price * @sold)'
来自python中的lxml,但我不断收到错误'Invalid Expression'。 xmllint命令也是如此。 但是相同的查询在Oxygen xml编辑器中有效。
如何使这项工作?
答案 0 :(得分:5)
您正在使用的XPath表达式需要XPath 2.0。 (您可以通过将XPath版本设置为1.0并再次尝试查询来验证Oxygen。)我认为lxml不支持XPath 2.0。
如果您无法获得支持XPath 2.0的库,那么您需要执行以下操作,而不是尝试在XPath中完成所有操作:
<item>
元素,例如使用XPath表达式//item
<item>
元素的上下文中,评估XPath表达式@price * @sold
答案 1 :(得分:0)
计算可以在XPath 2.0中完成,因为我已经更正了!
如果您想选择价格低于或等于售价时间2的所有商品,则可以选择。见下: http://en.wikipedia.org/wiki/XPath#Number_functions