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

如何用单条XPath提取以冒号或连字符分隔的颜色值?

解决XPath提取多分隔符子串的问题

针对你的表格结构,要合并提取两种分隔符后的颜色值,这里提供两种可行的XPath方案,都能直接输出blue和green:

方案1:条件判断提取(兼容XPath 2.0+)

利用if-else逻辑匹配不同分隔符,精准提取对应子串:

//tr/td/text()[contains(., ':') or contains(., '-')]/(if(contains(., ': ')) then substring-after(., ': ') else substring-after(., '- '))
  • 先通过contains筛选出包含冒号或连字符的文本节点,排除不需要的jasmine flower行
  • 再根据文本包含的分隔符类型,分别用substring-after提取分隔符(含后续空格)后的内容

方案2:正则替换提取(更简洁)

用replace函数直接替换掉前缀部分,保留颜色值:

//tr/td/text()[contains(., ':') or contains(., '-')]/replace(., '^color[:-] ', '')
  • 正则^color[:-] 匹配开头的color + 冒号/连字符 + 空格,将这部分替换为空,直接得到颜色值

为什么你之前的尝试不生效?

  • //tr/td/[substring-after(text(),':') or substring-after(text(),'-')]:这是给td加谓语筛选,返回的是符合条件的td元素,不是提取后的子串
  • //tr/td/text()[substring-after(.,':') or substring-after(.,'-')]:只是筛选出符合条件的文本节点,但返回的是整个文本内容,没有做子串提取

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.23 05:57:17