属性值中的XPath通配符

本文关键字:XPath 通配符 属性 | 更新日期: 2023-09-27 18:18:47

我使用以下XPath来匹配类span的属性:

//span[@class='amount']

我想匹配所有具有"amount"类属性的元素,但也可能具有其他类。我想我可以这样做:

//span[@class='*amount*'] 

但这不起作用…我该怎么做呢?

属性值中的XPath通配符

使用以下表达式:

//span[contains(concat(' ', @class, ' '), ' amount ')]

您可以单独使用contains,但也可以匹配someamount之类的类。在以下输入上测试上述表达式:

<root>
  <span class="test amount blah"/>
  <span class="amount test"/>
  <span class="test amount"/>
  <span class="amount"/>
  <span class="someamount"/>
</root>

它将选择前四个span元素,但不选择最后一个

您需要使用contains方法。请参阅如何使用XPath contains()。

//span[contains(@class,'amount')]