首页 > 解决方案 > 在 XPATH 中搜索时如何忽略兄弟元素?

问题描述

以下 DIV 在页面上,我想通过 C1102W 查找元素:

<div class="product-sku hidden-xs">
<span>Item #: </span>
C1102W            </div>

我试过查询:

$x("//*[normalize-space()='C1102W']")

但是,由于跨度,它不会返回正确的元素,因为它正在寻找类似“Item #: C1102W”的东西。以下查询返回太多结果:

$x("//*[contains(., 'C1102W')]")

无论如何要查询“给我只包含 C1102W 的元素,忽略跨度或任何其他兄弟姐妹”?

编辑:对我有用的解决方案。

//text()[normalize-space() = 'C1102W']/..

标签: htmlxpath

解决方案


这个 XPath,

//div[ends-with(normalize-space(), 'C1102W')]

将只返回那些div空间标准化字符串值以 . 结尾的元素'C1102W'


推荐阅读