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

基于XSLT 2.0将数组属性值合并为带指定分隔符的单个属性

XSLT 2.0 处理Reference节点生成目标格式方案

示例输入XML

<Request>
  <Reference id="REF1">
    <Value>VAL1</Value>
  </Reference>
  <Reference id="REF2">
    <Value>VAL2</Value>
  </Reference>
  <Reference id="REF3">
    <Value>VAL3</Value>
  </Reference>
</Request>

解决方案XSLT代码

<xsl:stylesheet version="2.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
  <xsl:output method="xml" indent="yes"/>

  <xsl:template match="/">
    <TargetSystem>
      <CombinedReferences>
        <xsl:value-of select="concat('~', string-join(//Reference/concat(@id, ':', Value), '~'), '~')"/>
      </CombinedReferences>
    </TargetSystem>
  </xsl:template>
</xsl:stylesheet>

输出结果

<TargetSystem>
  <CombinedReferences>~REF1:VAL1~REF2:VAL2~REF3:VAL3~</CombinedReferences>
</TargetSystem>

关键说明

  • 单纯用value-of加分隔符只能处理元素间的分隔,无法直接为整体添加开头和结尾的波浪线,因此需要用concat包裹string-join的结果
  • string-join(//Reference/concat(@id, ':', Value), '~')先将每个Reference节点的id和Value拼接为id:Value格式,再用~连接所有组合
  • 最后通过concat给拼接好的字符串前后各追加一个~,完全匹配目标系统的格式要求

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.26 04:10:04