假设我们有一个HTML表格,基本上是这样的:
2|1|28|9| 3|8|5|10| 18|9|8|0|
我想选择仅包含8个元素的单元格,即,第2行的第2个单元格和第3行的第3个单元格。
这是我尝试过的://table//td[contains(.,'8')]。它给了我所有包含8的单元格。因此,我也得到了不必要的值28和18。
//table//td[contains(.,'8')]
我该如何解决?
编辑: 这是一个示例表,如果您想尝试您的xpath。使用左侧的日历-https : //sfbay.craigslist.org/sfc/
请小心该 contains() 功能。
contains()
使用它来测试 元素是否包含值 是一个常见的 错误 。它真正要做的是测试 字符串是否包含子字符串 。因此,采用字符串值()并测试它是否包含任何子字符串。这可能是您想要的,但通常不是。 __ __td[contains(.,'8')]``td``.``'8'
td[contains(.,'8')]``td``.``'8'
这个XPath
//td[.='8']
将选择所有字符串值 等于的*td元素。 *8
td
8
另外,这个XPath
//td[normalize-space()='8']
将选择所有normalize-space()字符串值 等于的*td元素。(normalize- space() XPath函数会删除开头和结尾的空白,并用单个空格替换空白字符序列。) *8
a
b
span
div
<td>gr8t</td>
<td>123456789</td>
normalize-space()