html - 如何检索内部文本

标签 html xml xpath

如何使用 XPath 从此模板检索文本

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

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

最佳答案

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

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

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

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

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

XPath 2.0:

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

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

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

关于html - 如何检索内部文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44514088/

相关文章:

c# - 通过 Monogame 内容管道加载 XML 文件?

Python:忽略 elementtree.ElementTree 中的 xmlns

xml - 如何在没有特定属性的所有元素上使用 XPath 进行过滤

html - 如何正确使用 XPath preceding-sibling?

javascript - blockui $.unblockUI() 不起作用

html - 如何制作全高分屏视频?

xml - XSLT 1.0 从元素中删除 xmlns =""

javascript - 使用 selenium 和 Python 单击 'onclick' 按钮

javascript - 如何在 html/javascript 中包含项目文件夹之外的文件

java - 初始 HTML 文本字段光标位置