如何检索内部文本

时间:2017-06-13 06:41:49

标签: html xml xpath

如何使用XPath从此模板中检索text

<div class="c">
<span> a </span>
      text
</div>

我知道//div[@class='c']//text()会返回整个div部分,但我只想要文本。

1 个答案:

答案 0 :(得分:2)

有一个斜线太多了。一个斜杠确保仅返回div正下方的文本:

//div[@class='c']/text()

以上返回文本节点。在XPath或XQuery的许多地方,它们会自动转换为字符串(雾化),但您也可以明确强制转换为字符串:

//div[@class='c']/text()/string()

或者如果您需要清理空格和空文本节点以准确返回text

XPath 2.0:

//div[@class='c']/text()/normalize-space()[string-length() gt 0]

XPath 1.0(针对此特定文档):

normalize-space(//div[@class='c']/text()[2])