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

如何用XPath仅提取XML中<b>节点直接包含的6.89文本

问题说明

现有如下XML结构:

<?xml version="1.0" encoding="UTF-8"?>
<a>
   <b>6.89<c>45</c></b>
</a>

直接使用XPath表达式//b提取内容时,返回结果会同时包含<b>节点的直接文本和子节点<c>内的文本,不符合仅提取<b>下直接包含的6.89文本、排除子节点内容的需求。

解决方案

正确的XPath写法为:

//b/text()

写法说明

  • text()是XPath内置的节点类型匹配符,代表选中当前上下文下的直接文本子节点,不会递归读取子元素内部的内容,因此上述表达式只会返回<b>节点直属的6.89文本,不会带出<c>节点内的45。
  • 如果目标节点下存在多段直接文本(例如结构为<b>第一段文本<c>子节点文本</c>第二段文本</b>),可以通过索引指定要提取的文本段,比如提取第一段直接文本的写法为//b/text()[1]。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.28 01:09:58