You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

XPath提取目标文本返回空值,如何获取指定日期文本?

问题

尝试从以下HTML代码中提取文本Aug 7, 2019 at 9:34 am ET:

<span class="meta"><span class="authordata">
<a href="https://example.com" title="Posts by me" rel="author">Author</a></span> | Aug 7, 2019 at 9:34 am ET
</span>

使用XPath表达式//span[@class="meta"]/text()及//span[@class="meta"]/text[0]、//span[@class="meta"]/text[1]等变体均返回空值,求正确的XPath表达式。

解决方案

核心原因

之前尝试失败主要有两个关键点:

  • XPath的节点索引是从1开始,而非0,所以text[0]属于无效语法;
  • //span[@class="meta"]/text()会返回该节点下所有直接子文本节点,其中第一个是span.authordata标签后的换行空白节点,部分工具可能默认只返回第一个节点,导致你误以为结果为空。

几种可行的XPath表达式

  1. 直接定位目标文本节点
    目标文本是span.meta的第2个直接子文本节点(第一个为空白节点),使用以下表达式:
//span[@class="meta"]/text()[2]

若需要去除文本前后的空白,可嵌套normalize-space():

normalize-space(//span[@class="meta"]/text()[2])
  1. 通过兄弟节点精准定位
    目标文本是span.authordata的后续兄弟文本节点,直接定位更精准:
//span[@class="authordata"]/following-sibling::text()[1]
  1. 提取整段文本后截取日期
    如果需要直接获取干净的日期文本,可先提取span.meta的所有文本并去除多余空格,再通过|分割截取:
substring-after(normalize-space(//span[@class="meta"]), '|')

内容的提问来源于stack exchange,提问作者Evgeniy

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.25 21:57:41