如何在XPATH中乘以值?

Kar*_*ick 0 xml xpath

假设我有一堆

<item price='n' sold='m'>
...
</item>
Run Code Online (Sandbox Code Playgroud)

我想在每件商品上做价格*.我在尝试

'//item/(@price * @sold)' 
Run Code Online (Sandbox Code Playgroud)

来自python中的lxml内部,但我不断收到错误'Invalid Expression'.xmllint命令也是如此.但是相同的查询在Oxygen xml编辑器中有效.

我该如何工作?

Lar*_*rsH 5

您正在使用的XPath表达式需要XPath 2.0.(您可以通过将XPath版本设置为1.0并再次尝试查询来在Oxygen中验证这一点.)我不认为lxml支持XPath 2.0.

如果您无法获得支持XPath 2.0的库,那么您需要:而不是尝试在XPath中完成所有操作,而是需要:

  • 选择<item>XPath中的元素,例如使用XPath表达式//item
  • 在Python中循环遍历这些元素
  • 在每个<item>元素的上下文中,评估XPath表达式@price * @sold