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

XSLT如何将迭代获取的ProductName值拼接存入全局变量并输出

XSLT 变量为只读属性,声明后无法修改赋值,原代码中尝试在循环内更新CombineProductName的思路不可行,以下是可直接使用的实现方案:


方案1:XSLT 2.0 及以上版本(代码最简,推荐优先使用)

直接调用内置string-join函数完成拼接,无需额外逻辑处理:

<xsl:template name="CartItemProductNames">
    <xsl:param name="Data" />
    <xsl:value-of select="concat('{', string-join($Data/ProductName, ', '), '}')" />
</xsl:template>

你原有调用模板的代码无需任何修改,即可输出符合要求的格式。


方案2:兼容XSLT 1.0 版本(适配旧版本解释器环境)

XSLT1.0无内置拼接函数,通过判断节点位置处理分隔符,避免首尾多余逗号:

<xsl:template name="CartItemProductNames">
    <xsl:param name="Data" />
    <xsl:text>{</xsl:text>
    <xsl:for-each select="$Data/ProductName">
        <xsl:value-of select="." />
        <xsl:if test="position() != last()">
            <xsl:text>, </xsl:text>
        </xsl:if>
    </xsl:for-each>
    <xsl:text>}</xsl:text>
</xsl:template>

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.25 06:36:01