How to use for each group in XSL How to use for each group in XSL xml xml

How to use for each group in XSL


If you group by country you would start with e.g.

<xsl:template match="Person">  <xsl:for-each-group select="Student/Info" group-by="@Country">    <country name="{current-grouping-key()}">    </country>  </xsl:for-each-group></xsl:template>

Then you have to decide whether you want to further group the Info elements in each country group, for instance by name:

<xsl:template match="Person">  <xsl:for-each-group select="Student/Info" group-by="@Country">    <country name="{current-grouping-key()}">      <xsl:for-each-group select="current-group()" group-by="@Name">        <student name="{current-grouping-key()}">          <classes>            <xsl:for-each select="current-group()">              <class><xsl:value-of select="@Class"/></class>            </xsl:for-each>          </classes>        </student>      </xsl:for-each-group>    </country>  </xsl:for-each-group></xsl:template>