我有这个div:
<div class="product-name">Product1</div>
我也有这个div:
<div class="product-name gold">Product2</div>
如何更改此xpath查询以获取包含 product-name的div?而不是完全匹配。
/html/body//div[@class='product-name']
我用Google搜索了,但我找到的只是在搜索节点中的值而不是属性时如何使用contains
。
修改
答案 0 :(得分:2)
对序列的这种存在性测试的经典XPath 1.0答案是:
/html/body//div[
contains(
concat(' ',normalize-space(@class),' '),
' product-name '
)
]
答案 1 :(得分:1)
您可以使用contains()
:
/html/body//div[contains(@class, 'product-name')]
<强>更新强>
正如@Alejandro在他的评论中指出的那样,这也会匹配包含 product-name
的任何类。 See his answer for a XPath 1.0 solution
如果您使用XPath 2.0,您也可以这样做:
/html/body//div[exists(index-of(tokenize(@class, "\s+"), "product-name"))]
答案 2 :(得分:0)
/html/body//div[contains(@class,'product-name')]
属性也是节点,它们被称为属性节点。