代码之家  ›  专栏  ›  技术社区  ›  Honey Goyal

XSLT 2.0过滤和分组后的迭代次数计数

  •  0
  • Honey Goyal  · 技术社区  · 8 年前

    我想找出以下XSL for循环所完成的迭代次数

    <xsl:for-each-group select="current-group()[SOME_FIELD != 'da']" group-by="concat(SOME_FIELD1,'+',SOME_FIELD2)">
    </xsl:for-each-group>
    

    我需要这个循环的计数。

    2 回复  |  直到 8 年前
        1
  •  2
  •   Michael Kay    8 年前

    也许你只需要不同的价值观:

    <xsl:value-of select="count(distinct-values(
        current-group()[SOME_FIELD != 'da']/concat(SOME_FIELD1,'+',SOME_FIELD2)))"/>
    
        2
  •  0
  •   Martin Honnen    8 年前

    for-each-group 不是循环和空 甚至可能根本没有进行评估。如果您创建组并想计算组的数量,则将其分组到一个变量中,例如。

    <xsl:variable name="groups" as="element(group)*">
      <xsl:for-each-group select="current-group()[SOME_FIELD != 'da']" group-by="concat(SOME_FIELD1,'+',SOME_FIELD2)">
        <group>...</group>
      </xsl:for-each-group>
    </xsl:variable>
    

    然后你可以使用 count($groups) 获取组数。