为什么CONTAINS(TEXT(),&QOOT;STRING&QOOT;)不能在XPath中工作?
我已经为下面的HTML代码编写了此表达式//*[contains(text(), "Brand:" )]
。
<div class="info-product mt-3">
<h3>Informazioni prodotto</h3>
Brand: <span class="brand_title font-weight-bold text-uppercase"><a href="https://mammapack.com/brand/ava">Ava</a></span><br> SKU: 8002910009960<br> Peso Lordo: 0.471 kg <br> Dimensioni: 44.00 × 145.00 × 153.00 mm<br>
<p class="mt-2">
AVA BUCATO A MANO E2 GR.380</p>
</div>
我编写的XPath不起作用我想选择包含文本的节点Brand:
。有人能告诉我我的错误吗?
解决方案
您的XPath,
//*[contains(text(), "Brand:")]
将选择第一个文本节点子节点包含"Brand:"
子字符串的所有元素。在XPath 2.0中,使用多个项目的序列作为第一个参数来调用contains()
是错误的。
此XPath
//*[text()[contains(., "Brand:")]]
将选择字符串值包含"Brand:"
子字符串的文本节点子级的所有元素。
另请参阅
- XPath 1.0 vs 2.0+ different
contains()
behavior explanation - Testing text() nodes vs string values in XPath
相关文章