Je suis nouveau dans le XSLT et je souffre avec ce petit probleme. On ne doit pas utiliser la function xsl:key et on doit utiliser uniquement le XSLT 1.0
Je me suis en sorti tant bien que mal. Mais là je vois pas et comprend pas pourquoi le resultat de sum() ne retourne pas les bonnes valeurs.

Voici mon fichier xml:
<?xml version="1.0" encoding="ISO-8859-1" ?>
<?xml-stylesheet href="class3.xsl" type="text/xsl" ?>
<universite>
<etudiant><nom>Réjean Tremblay</nom>
<cours sigle="INF8430" note="89" />
<cours sigle="INF1030" note="69" />
<cours sigle="INF1230" note="75" /></etudiant>
<etudiant><nom>Martin Lambert</nom>
<cours sigle="INF8430" note="75" />
<cours sigle="INF1030" note="72" />
<cours sigle="INF1230" note="73" /></etudiant>
<etudiant><nom>Luc Alain</nom>
<cours sigle="INF9430" note="39" />
<cours sigle="INF1030" note="89" />
<cours sigle="INF1230" note="79" /></etudiant>
<etudiant><nom>Olive Saint-Amant</nom>
<cours sigle="INF8430" note="91" />
<cours sigle="INF1230" note="99" /></etudiant>
</universite>

----------------------------------------
Ce que j'ai fait (mon fichier XSL):

<?xml version="1.0" encoding="ISO-8859-1"?>
<xsl:stylesheet version="1.0" xmlnssl="http://www.w3.org/1999/XSL/Transform" >

<xsl:template match="/">
<html>
<body>
<table id="montableau" border="1">
<tr>
<th>Sigles</th><th>NbreEtudiants</th><th>TotalNotes</th><th>Moyenne du Cours</th>
</tr>
<!-- xsl:for-each select="universite/etudiant/cours[@*]" -->
<xsl:apply-templates select="universite/etudiant/cours">
</xsl:apply-templates>

<!-- <td><xsl:value-of select="sum(//cours[@note=current()/@note][1])" /></td> -->

</table>
</body>
</html>
</xsl:template>

<xsl:template match="cours">
<xsl:variable name="totalEtudiants" select="count(//cours/@sigle)" />
<xsl:variable name="totalNotes" select="sum(//cours/@note)" />
<xsl:if test="generate-id((//cours[@sigle=current()/@sigle])[1]) = generate-id(.)">
<tr>
<td><xsl:value-of select="@sigle" /> </td>
<td><xsl:value-of select="count((//cours[@sigle=current()/@sigle]))" /></td>

<td><xsl:value-of select="sum(//cours/@note[//cours[@sigle=current()/@sigle]])" /></td>
<td><xsl:value-of select="format-number(sum(//cours/@note[@notes[@sigle=current()/@sigle]]) div count((//cours[@sigle=current()/@sigle])),'##.0') " /></td>

</tr>
</xsl:if>

</xsl:template>
</xsl:stylesheet>
-------------------------------------
Le resultat que j'obtiens:
Sigles NbreEtudiants TotalNotes Moyenne du Cours
INF8430 3 850 0.0
INF1030 3 850 0.0
INF1230 4 850 0.0
INF9430 1 850 0.0

La fonction sum me retourne le total de toutes les notes: 850 au lieu de faire la somme de chaque sigle comme le montre le tableau ci-bas.
-----------------------------------------

Le resultat que je recherche devrait etre
Sigles NbreEtudiants TotalNotes Moyenne du Cours
INF8430 3 255 85.0
INF1030 3 230 76.7
INF1230 4 326 81.5
INF9430 1 39 39.0

.....