XML/XSLT ranger par ordre alphabétique
Bonjour à tous,
j’étudie actuellement une partie de mon cours qui traite le XSLT et on me demande dans un exercice, à partir d'un document xml, d'afficher le noms des élèves dans l'ordre alphabétique ainsi que leur moyenne.
Je m'attaque déjà à la partie qui permet de ranger dans l'ordre les noms, le soucis c'est que les noms s'affichent mais pas du tout dans l'ordre et je comprend pas pourquoi.
code xml:
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
| <?xml version="1.0" encoding="ISO-8859-1" ?>
<?xml-stylesheet href="class.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> |
voici ce que je suis en train de faire:
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
| <?xml version="1.0" ?>
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="etudiant">
<html>
<body>
<table border="1">
<tr>
<td>Étudiant </td>
<td> Moyenne </td>
</tr>
</table>
</body>
</html>
<xsl:apply-templates select="nom" >
<xsl:value-of select="nom"/>
<xsl:sort select="substring-after(nom,' ')" order="ascending"/>
</xsl:apply-templates>
</xsl:template>
</xsl:stylesheet> |
voici ce que j'obtient:
Code:
<html xmlns="http://www.w3.org/1999/xhtml"><head></head><body><table border="1"><tbody><tr> <td>Étudiant </td> <td> Moyenne </td> </tr></tbody></table>Réjean Tremblay <table border="1"><tbody><tr> <td>Étudiant </td> <td> Moyenne </td> </tr></tbody></table>Martin Lambert <table border="1"><tbody><tr> <td>Étudiant </td> <td> Moyenne </td> </tr></tbody></table>Luc Alain <table border="1"><tbody><tr> <td>Étudiant </td> <td> Moyenne </td> </tr></tbody></table>Olive Saint-Amant </body></html>
Merci d'avance pour votre aide.
While.dede