请小心该 contains()
功能。
使用它来测试 元素是否包含值 是一个常见的 错误 。它真正要做的是测试 字符串是否包含子字符串
。因此,采用字符串值()并测试它是否包含任何子字符串。这可能是您想要的,但通常不是。 __
__
td[contains(.,'8')]``td``.``'8'
这个XPath
//td[.='8']
将选择所有字符串值
等于的*td
元素。 *
8
另外,这个XPath
//td[normalize-space()='8']
将选择所有normalize-space()字符串值 等于的*td
元素。(normalize-
space()
XPath函数会删除开头和结尾的空白,并用单个空格替换空白字符序列。) *
8
笔记:
- 两者都将甚至工作,如果图8是另一种元素如一个的内部
a
,b
,span
,div
,等。 - 双方将 不 匹配
<td>gr8t</td>
,<td>123456789</td>
等等。 - 使用
normalize-space()
会忽略周围的前导或尾随空白8
。



