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

XSLT 1.0中$Example/Details取值异常及SellStatus判断问题求助

XSLT 1.0 循环遍历Details节点问题解析与修复

问题现象原因

  • 在SellDetailsInfo模板的for-each循环中,$Example/Details是始终从传入的$Example节点根路径查找,而非当前迭代的节点。XSLT 1.0中xsl:value-of默认只返回匹配节点集的第一个节点文本内容,所以循环两次输出的都是第一个Details节点的内容,导致SellStatus永远显示AAA。
  • 直接用xsl:value-of select="$Example"会输出Example节点下所有文本的拼接结果,不符合拆分显示需求。

修复后的XSLT代码

<?xml version="1.0" encoding="utf-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
    xmlns:msxsl="urn:schemas-microsoft-com:xslt" exclude-result-prefixes="msxsl"
>
    <xsl:output method="xml" indent="yes"/>

  <xsl:template match="/root">
    <xsl:apply-templates select="Example"/>
    <xsl:call-template name="SellDetailsInfo">
      <xsl:with-param name="Example" select="Example"/>
    </xsl:call-template>
  </xsl:template>
    
  <xsl:template name="SellDetailsInfo">
    <xsl:param name="Example"/>
    <!-- 遍历每个Details节点 -->
    <xsl:for-each select="$Example/Details">
      <!-- 用.指代当前循环的Details节点 -->
      <DetailItem>
        <ItemTC>
          <xsl:value-of select="Item/@tc"/>
        </ItemTC>
        <!-- 根据SellStatus值生成对应标签 -->
        <xsl:choose>
          <xsl:when test="SellStatus = 'AAA'">
            <StatusTag type="active">
              <xsl:value-of select="SellStatus"/>
            </StatusTag>
          </xsl:when>
          <xsl:when test="SellStatus = 'BBB'">
            <StatusTag type="inactive">
              <xsl:value-of select="SellStatus"/>
            </StatusTag>
          </xsl:when>
          <xsl:otherwise>
            <StatusTag type="unknown">
              <xsl:value-of select="SellStatus"/>
            </StatusTag>
          </xsl:otherwise>
        </xsl:choose>
      </DetailItem>
    </xsl:for-each>
  </xsl:template>
  
</xsl:stylesheet>

关键修改说明

  • 循环内部用.代表当前迭代的Details节点,后续的Item/@tc、SellStatus均基于当前上下文查找,避免重复取第一个节点。
  • 通过xsl:choose分支判断SellStatus的值,为AAA、BBB及其他状态生成不同属性的StatusTag元素,满足差异化标签需求。
  • 输出结构清晰,每个Details的商品编号和状态标签独立展示。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.17 12:35:27