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

XSLT中如何使用split类函数拆分斜杠分隔字符串生成指定格式输出

XSLT 斜杠分隔字符串拆分实现方案

根据你使用的XSLT版本选择对应方案即可,不需要写多层嵌套的substring-before/substring-after:

XSLT 2.0 / 3.0 版本(最简实现)

2.0及以上版本内置了和split功能完全一致的tokenize()函数,支持按正则匹配分隔符拆分字符串为序列,直接按下标取字段即可。
针对你的输入场景,实现逻辑分两步:

  • 先按换行符拆分原始输入,过滤掉空行得到每条记录
  • 单条记录按/拆分,得到的3个元素依次对应Country、Code、Line字段

完整示例代码:

<xsl:variable name="rawInput" select="'UK/006/10
US/004/12'"/>

<xsl:for-each select="tokenize($rawInput, '\r?\n')[normalize-space(.)]">
  <xsl:variable name="splitFields" select="tokenize(., '/')"/>
  <xsl:text>Country: </xsl:text><xsl:value-of select="$splitFields[1]"/><xsl:text>&#10;</xsl:text>
  <xsl:text>Code: </xsl:text><xsl:value-of select="$splitFields[2]"/><xsl:text>&#10;</xsl:text>
  <xsl:text>Line: </xsl:text><xsl:value-of select="$splitFields[3]"/><xsl:text>&#10;&#10;</xsl:text>
</xsl:for-each>

运行后输出格式和你预期完全一致,后续如果字段数量、分隔符有调整,只需要修改tokenize的参数和对应下标即可,维护成本远低于嵌套截取写法。

XSLT 1.0 兼容方案

如果你的运行环境只支持XSLT 1.0(比如老版本的Xalan、.NET Framework自带的XSLT引擎),没有内置tokenize,可以先写一个通用的递归拆分模板,一次定义后全局复用,不用每次写嵌套截取:

<!-- 通用字符串拆分模板 -->
<xsl:template name="splitString">
  <xsl:param name="input" select="''"/>
  <xsl:param name="delimiter" select="'/'"/>
  <xsl:if test="string-length($input) > 0">
    <item>
      <xsl:choose>
        <xsl:when test="contains($input, $delimiter)">
          <xsl:value-of select="substring-before($input, $delimiter)"/>
        </xsl:when>
        <xsl:otherwise>
          <xsl:value-of select="$input"/>
        </xsl:otherwise>
      </xsl:choose>
    </item>
    <xsl:if test="contains($input, $delimiter)">
      <xsl:call-template name="splitString">
        <xsl:with-param name="input" select="substring-after($input, $delimiter)"/>
        <xsl:with-param name="delimiter" select="$delimiter"/>
      </xsl:call-template>
    </xsl:if>
  </xsl:if>
</xsl:template>

调用时将待拆分字符串传入模板,会返回按分隔符拆分好的节点集,直接按下标取对应位置的字段即可。

小提示:如果你的原始输入存在前后多余空格,可以在拆分前用normalize-space()处理单条记录,避免取到带空格的无效字段值。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.27 06:27:25