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

求助:如何用XPath获取指定标签后方的目标文本内容?

解决XPath定位Variant标签后抓取对应p文本的问题

你的问题出在对HTML结构的层级判断上——span[text()='Variant:']和目标p标签并不是直接的兄弟节点,它们分别嵌套在两个同级的div容器里。我们需要调整XPath的遍历路径,先回到父容器,再定位到兄弟容器里的内容。

正确的XPath表达式方案

这里提供几种可靠的写法,你可以根据实际场景选择:

方案1:从span向上回溯到父容器,再找兄弟容器的p

//span[text()='Variant:']/../following-sibling::div[@class='info-content']/p
  • 解释:
    1. //span[text()='Variant:']:精准定位到文本为Variant:的span标签
    2. ../:向上跳一级,回到span所在的div.info-label容器
    3. following-sibling::div[@class='info-content']:找到这个div的同级兄弟容器div.info-content
    4. /p:定位到该容器内的p标签

如果想直接获取文本内容,可以在末尾加上/text():

//span[text()='Variant:']/../following-sibling::div[@class='info-content']/p/text()

方案2:先定位包含目标span的info-row,再找内部的p

这种写法更强调上下文关联性,结构更清晰:

//div[@class='info-row'][.//span[text()='Variant:']]/div[@class='info-content']/p/text()
  • 解释:先找到包含Variant: span的div.info-row,再直接提取该row内info-content里的p文本。

为什么你的原表达式失败?

原表达式//span[text()='Variant:']/following-sibling::p是在找span的直接同级兄弟节点,但根据你的HTML结构,span的父容器是div.info-label,span没有直接的p兄弟——p在隔壁的div.info-content里,所以自然无法定位到。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.28 10:02:33