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

XQuery如何为重复字段返回的多个值添加指定分隔符

问题根因

你之前尝试的两个写法都没生效,核心是函数选型错误:

  • tokenize()的作用是把单个字符串按规则拆分成序列,和你要的「多值拼接为单个字符串」的需求完全反向
  • replace()仅能对单个字符串做字符替换,当你传入匹配到的多个节点组成的序列时,它只会处理第一个节点的内容;且单节点值不存在空格时不会产生任何变化,根本覆盖不了多节点匹配的场景。

可用方案

直接使用XPath 2.0+ 原生提供的string-join()函数即可,这个函数专门用于将序列中的所有值按指定分隔符拼接,单值、多值场景都能自动适配:

string-join(/*:ShippedUnit/*:Containment/*:ContainerManifest/*:Consignments/*:Consignment/*:ConsignmentHeader/*:ConsignmentRef, '|')

效果说明

  • 多节点场景:匹配到3个节点值分别为CBR123、CBR678、CBR656时,返回结果为CBR123|CBR678|CBR656,和预期完全一致
  • 单节点场景:仅匹配到1个值时,直接返回节点原值,不会拼接多余的分隔符

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.31 21:33:24