Comment utiliser un groupeby dans xslt
Bonjour a vous tous!
j'ai besoin de votre aide
pour un groupeby dans mon programme XSLT
ca fait plusieurs recherches que je fait sans avoir de résultat weird:
voici le input xlm
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26
| <université>
<étudiant>
<nom>réjean Tremblay</nom>
<cours sigle="INF8430" note="89" />
<cours sigle="INF1030" note="69" />
<cours sigle="INF1230" note="75" />
</étudiant>
<étudiant>
<nom>Martin Lambert</nom>
<cours sigle="INF8430" note="75" />
<cours sigle="INF1030" note="72" />
<cours sigle="INF1230" note="73" />
</étudiant>
<étudiant>
<nom>Luc Alain</nom>
<cours sigle="INF9430" note="39" />
<cours sigle="INF1030" note="89" />
<cours sigle="INF1230" note="79" /></étudiant>
<étudiant>
<nom>Olive Saint-Amant</nom>
<cours sigle="INF8430" note="91" />
<cours sigle="INF1230" note="99" />
</étudiant>
</université> |
et voici mon code XSLT
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
| <xsl:stylesheet version="2.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="/">
<xsl:copy>
<xsl:for-each-group select="étudiant/cours" group-by="@sigle">
<université>
<étudiant><xsl:value-of select="current-grouping-key()" /></étudiant>
<data>
<xsl:for-each-group select="current-group()/data/cours" group-by="@sigle">
<year number="{current-grouping-key()}">
<xsl:for-each select="current-group()">
<xsl:copy-of select="*" />
</xsl:for-each>
</year>
</xsl:for-each-group>
</data>
</université>
</xsl:for-each-group>
</xsl:copy>
</xsl:template> |
et voici le mon output
Citation:
Sigle Nombre d'étudiants Moyenne du cours
INF8430 1 89.0
INF1030 1 69.0
INF1230 1 75.0
INF8430 1 75.0
INF1030 1 72.0
INF1230 1 73.0
INF9430 1 39.0
INF1030 1 89.0
INF1230 1 79.0
INF8430 1 91.0
INF1230 1 99.0
et voici le resultat attendu
Citation:
Sigle Nombre d'étudiants Moyenne du cours
INF8430 3 85.0
INF1030 3 76.7
INF1230 4 81.5
INF9430 1 39.0
je suis loin du résultat
merci de votre temps :ptdr: