我有以下XPath来匹配类span的属性:
//span[@class='amount']
我希望匹配class属性为“amount”的所有元素,但也可以包含其他类。我以为我能做到这一点:
//span[@class='*amount*']
但这不起作用......我怎么能这样做?
答案 0 :(得分:34)
使用以下表达式:
//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
元素,但不会选择最后一个元素。
答案 1 :(得分:15)
您需要使用contains方法。见How to use XPath contains() here?
//span[contains(@class,'amount')]