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

如何在XSLT的for-each循环中为元素添加分隔符?

给XSLT循环元素添加分隔符的不同版本实现

嘿,这个需求我太熟了!不同XSLT版本的功能差异确实会影响实现方式,下面分版本给你具体方案:

XSLT 1.0 实现方式

因为1.0没有内置的字符串拼接函数,咱们得手动判断元素位置来控制分隔符:

<xsl:for-each select="properties/property">
  <!-- 输出当前元素的name值 -->
  <xsl:value-of select="name"/>
  <!-- 只有当不是最后一个元素时,才输出分隔符; -->
  <xsl:if test="position() != last()">
    <xsl:text>;</xsl:text>
  </xsl:if>
</xsl:for-each>

这里利用position()获取当前元素在节点集中的位置,last()获取节点集的总数量,通过判断避免在最后一个元素后多加分隔符。

XSLT 2.0 实现方式

2.0新增了string-join()函数,直接一步到位,不用写循环啦:

<!-- 直接拼接所有name节点内容,用;分隔 -->
<xsl:value-of select="string-join(properties/property/name, ';')"/>

这个函数第一个参数是要拼接的节点序列,第二个参数是指定的分隔符,简洁又高效。

XSLT 3.0 实现方式

3.0在2.0的基础上更灵活,除了支持string-join(),还可以给xsl:value-of直接加separator属性:

<!-- 输出所有name节点内容,自动用;分隔 -->
<xsl:value-of select="properties/property/name" separator=";"/>

这种方式更直观,连函数调用都省了,直接通过属性指定分隔符就行。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.14 07:27:53