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

XSLT按公司分组后限制每组row节点最多出现3次的实现咨询

XSLT按公司分组并限制单组row节点数量实现

原有代码存在两个问题:

  1. 嵌套了按部门分组的逻辑,行数限制是作用在每个部门分组下,而非按公司分组的维度统计
  2. 行数判断条件$Grpcounter < 3实际仅会输出前2条row,不符合最多3条的要求

修正后的完整代码如下:

<xsl:output method="xml" version="1.0" encoding="UTF-8" indent="yes"/>
<xsl:decimal-format name="coerce" NaN="0"/>
<xsl:template match="/root">
    <root>
        <!-- 按公司字段分组row节点 -->
        <xsl:for-each-group select="row" group-by="Company">
            <!-- 遍历当前公司分组下的row节点 -->
            <xsl:for-each select="current-group()">
                <!-- 记录当前节点在分组内的位置 -->
                <xsl:variable name="Grpcounter" select="number(position())"/>
                <!-- 仅输出前3条row -->
                <xsl:if test="$Grpcounter &lt;= 3">
                    <xsl:call-template name="Group">
                    </xsl:call-template>
                </xsl:if>
            </xsl:for-each>
        </xsl:for-each-group>
    </root>
</xsl:template>
<xsl:template name="Group">
    <xsl:copy-of select="."/>
</xsl:template>
</xsl:stylesheet>

核心修改点说明

  • 移除了不必要的按部门分组嵌套逻辑,直接在公司维度的分组内统计行数,确保限制的是每个公司下的row总数
  • 将行数判断条件从<3调整为<=3,实现单分组最多3条row的要求
  • 保留了原有输出配置、节点复制逻辑,不影响其余已有业务规则

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.05 19:45:02