首页 > 解决方案 > 不在标签内的文本的XPath?

问题描述

我有一个非常简单的查询,但我不知道如何在 XPath 中执行此操作。

<p> <em>1</em> 2 </p>

什么样的 XPath 查询可以只返回2?问题2不在任何标签内,因此很难访问。

<p>我发现如果和之间没有空格,以下将起作用<em>p/text(). 但是,一旦它们之间有一个空格,它就不再起作用了。

标签: htmlxmlxpath

解决方案


这个 XPath,

/p/em/following-sibling::text()

将选择一个文本节点,其字符串值为2, 带有空格。

这个 XPath,

normalize-space(/p/em/following-sibling::text())

将返回2,没有空格。

em在元素之前有一个空格字符会导致问题的原因是(a和 a )/p/text()有两个子text()节点。p 2


推荐阅读