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

编写XPath时如何排除单个或多个指定标签内的文本内容

可用的XPath解决方案

方案1(适配当前场景,最简单)

直接提取p标签的直接文本节点,不会包含子元素a内的文本:
//p[@class='fs-14 mb-2']/text()

方案2(兼容更复杂的嵌套场景)

如果p标签内后续可能有其他嵌套标签,需要排除所有a标签内的文本、保留其余所有文本拼接结果,可以用:
//p[@class='fs-14 mb-2']//text()[not(parent::a)]


原有写法失效原因

你之前编写的//p[@class='fs-14 mb-2']/*[not(self::a)]的匹配逻辑是「选择p标签下所有不是a标签的子元素节点」,而你需要的1 Schools Found.是p标签的直接文本节点,不属于元素节点范畴,因此该表达式完全匹配不到目标内容,无法生效。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.29 09:15:02