我有一个如下节点:
<span class="portal-text-medium">Office Hours</span>
对于我使用的XPath
//span[text()='Office Hours']
应该可以,但是永远都不会。我可以使用,*contains(text(),'OfficeHours')]*但是找不到确切的匹配,因此我必须确认没有“*”。这不是唯一一次对我不起作用。我以前看过它能工作,所以我不知道出什么问题了。任何的想法?
*contains(text(),'OfficeHours')]*
是的,我可以并且确实会使用,starts-with但并不完全相同。
starts-with
text() =
. =
(匹配文本节点与匹配字符串值不同)
以下XPath 不 一样…
//span[text() = 'Office Hours']
说 :
选择span具有 直接 子级的元素 文本节点 _等于“办公时间”。
span
//span[. = 'Office Hours']
选择其span元素 字符串值等于“办公时间” 。
简而言之,对于 元素节点:
所述字串值元素节点的是串接 字符串值的所有文本节点号第后代在文档顺序元素节点的。
以下span元素 仅匹配#1 :
<span class="portal-text-medium">Office Hours<br/>8:00-10:00</span>
<span class="portal-text-medium">My<br/>Office Hours</span>
以下span元素 仅匹配#2 :
<span class="portal-text-medium"><b>Office</b> Hours</span>
<span class="portal-text-medium"><b><i>Office Hours</i></b></span>
以下span元素 将匹配#1和#2 :