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

时间:2017-11-02 07:36:08

标签: xml xslt xslt-2.0

我想找到下面的XSL for循环

完成的迭代次数
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android">
<gradient
    android:angle="90"
    android:startColor="#FFF300"
    android:endColor="#F5F094" />
    </shape>

我需要这个for循环的计数。

2 个答案:

答案 0 :(得分:2)

也许您只需要不同的值:

<xsl:value-of select="count(distinct-values(
    current-group()[SOME_FIELD != 'da']/concat(SOME_FIELD1,'+',SOME_FIELD2)))"/>

答案 1 :(得分:0)

for-each-group不是循环,空的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)来获取群组数量。