在XPath中测试text()节点与字符串值

我有一个节点,如下所示:

<span class=“门户文本媒体”>办公时间&lt/span>

对于我使用的XPath

//span[text()=“办公时间”]

这应该行得通,但永远不行。我可以使用*contains(text(),'Office Hours')]*,但这找不到精确的匹配项,我必须验证没有“*”。这不是我唯一一次没用了。我以前见过它工作,所以我不知道出了什么问题。有什么想法吗

是的,我可以,也确实可以,使用以开头的,但它并不完全相同

XPathtext()=与XPath不同=

(匹配的文本节点不同于匹配的字符串值)

下面的XPath不是相同的

  1. //span[text()=“办公时间”]

    选择所需的span元素
    有一个等于“办公时间”的立即
    文本节点

  2. //span[.=“办公时间”]

    选择span元素,其字符串值等于“办公时间”

简而言之,对于元素节点:

元素节点的字符串值是
元素的所有文本节点子体的字符串值
文档顺序中的节点

例子

以下span元素将仅匹配#1

  • <span class=“门户文本媒体”>办公时间<br/>8:00-10:00&lt/span&gt
  • <span class=“门户文本媒体”>我的<br/>办公时间&lt/span&gt

以下span元素将仅匹配#2

  • <span class=“门户文本媒体”&gt&书信电报;b>办公室&lt/b>小时&lt/span&gt
  • <span class=“门户文本媒体”&gt&书信电报;b&gt&书信电报;i>办公时间&lt/i&gt&lt/b&gt&lt/span&gt

以下span元素将同时匹配#1和#2

  • <span class=“门户文本媒体”>办公时间&lt/span&gt

发表评论