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

如何编写XPATH提取Summer标题对应价格并在指定span节点前停止提取

问题原因

你原本的XPath选中的是完整的<p class="price">元素,提取元素文本时会自动拼接其所有后代节点的文本内容,所以会带出后面span标签里的多余内容。你要提取的€180,000是该p标签下的第一个直接文本节点,单独定位这个节点即可。

正确XPath语句

推荐使用属性定位的稳定版本:

//p[contains(@class,'heading') and normalize-space(.)='Summer']/following-sibling::p[@class='price']/text()[1]

如果一定要按同级节点顺序定位,也可以用:

//p[contains(.,'Summer')]/following-sibling::p[2]/text()[1]
逻辑说明
  • 路径末尾加/text()[1]表示取当前节点下的第一个直接文本节点,正好对应你要的€180,000,不会包含子span内的文本
  • 推荐优先用@class属性定位节点,不要依赖同级节点的顺序索引,避免页面结构微调后XPath失效
  • 你之前写的变体逻辑错误:preceding-sibling是匹配同级的前置节点,而你要排除的span是p标签的子节点,不属于同级节点,所以过滤条件不会生效。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.08 08:51:04