【发布时间】:2021-12-22 20:15:38
【问题描述】:
假设我有一段这样的 HTML:
<a><other/>more text</a>
我可以匹配这块XPath:
//a[text() = '']
或者……
//a[text() = 'more text']
或者我可以用点来匹配整个东西:
//a[. = 'more text']
This post 描述了.(点)和text() 之间的这种区别,但简而言之,第一个返回单个元素,而后者返回一个元素列表。但这对我来说有点奇怪。因为虽然text() 可用于匹配列表中的任一元素,但在涉及XPath 函数contains() 时情况并非如此。如果我这样做:
//a[contains(text(), '')]
...我收到以下错误:
错误: contains() 的第一个参数的必需基数是一或零
text() 怎么会在使用完全匹配(等于)时有效,但对部分匹配(包含)无效?
【问题讨论】: