使用xpath如何正确匹配所有内部文本

时间:2014-01-21 21:25:42

标签: html xpath

Html中的InnerText属性返回包括子项在内的所有文本。我如何用xpath复制它?

例如,使用以下xpath:

//SPAN[normalize-space()='mycooltext']

我正在尝试匹配

<span>mycooltext</span>

还要找什么

<span>
  <span>my
    <span>
      cool
    </span>
    text
   </span>
</span>

在这两种情况下,根跨度内部文本都是“mycooltext”。

我意识到normalize-space将剥离一些空格。

1 个答案:

答案 0 :(得分:1)

尝试使用descendant-or-self

//span/descendant-or-self::*[normalize-space() = 'my cool text']

请注意,normalize-space不会删除字词

之间的空格

在这里演示 - http://www.xpathtester.com/obj/fdbdafbe-22a5-4fac-a249-30c92dcb143a

如果你真的需要将文本与删除的所有空格相匹配,这似乎有用......

//span/descendant-or-self::*[translate(normalize-space(), ' ', '') = 'mycooltext']

演示 - http://www.xpathtester.com/obj/e893f3e1-6d57-445c-9802-d7525bcd6b31