Bonjour,
Je me bloque dans ce scénario que je n'arrive pas a le reproduire en XSL.
J'ai un fichier XML :
Je souhaite faire un rendu HTML en XSL de la forme suivante :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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 <?xml version="1.0" encoding="UTF-8"?> <?xml-stylesheet href="releve_style2.xsl" type="text/xsl"?> <releve filiere="RT" niveau="4"> <etudiant numInscription="E2006-12" nom="scott"> <module code="INFO33" titre="programmation"> <controle date="2006-11-11" note="12"/> <controle date="2006-12-11" note="16"/> </module> <module code="RES22" titre="Réseaux"> <controle date="2006-11-12" note="10"/> <controle date="2006-12-12" note="11"/> </module> </etudiant> <etudiant numInscription="E2006-14" nom="tiger"> <module code="INFO33" titre="programmation"> <controle date="2006-11-11" note="13"/> <controle date="2006-12-11" note="8"/> </module> <module code="RES22" titre="Réseaux"> <controle date="2006-11-12" note="18"/> <controle date="2006-12-12" note="14"/> </module> </etudiant> </releve>
- Code module : INFO33
- Titre module : programmation
un tableau à 2 colonnes (Nom étudiant / Moyenne)
Nom étudiant | Moyenne
Scott 14
Tiger 10.5
Ma feuille de style est la suivante :
Ma question : Je ne vois pas comment je peux avoir les élément Module non double avec le Étudiant de chaque module et je n'arrive pas à imaginer comment je doit procéder dans la boucle pour à la fois regrouper les module et voir le niveau supérieur qui est Étudiant pour avoir ces infos.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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
27
28
29
30
31
32
33
34
35
36
37
38 <?xml version="1.0" encoding="UTF-8"?> <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="2.0"> <xsl:output method="html"/> <xsl:template match="/"> <html> <head> <title>Relevés des notes</title> </head> <body> <xsl:for-each select="releve"> <xsl:for-each select="etudiant"> <xsl:for-each select="module"> <li>Code module : <xsl:value-of select="@code"/> </li> <li>Titre module : <xsl:value-of select="@titre"/> </li> </xsl:for-each> <table border="1" width="60%"> <tr> <td width="70%" bgColor="yellow" align="center"><b>Nom etudiant</b></td> <td width="30%" bgColor="yellow" align="center"><b>Moyenne</b></td> </tr> <xsl:for-each select="/"> <tr> <td><xsl:value-of select="@nom"/> </td> <td><xsl:value-of select="sum(module/controle/@note)"/> </td> </tr> </xsl:for-each> </table> </xsl:for-each> <br/><br/> </xsl:for-each> </body> </html> </xsl:template> </xsl:stylesheet>
Merci d'avance.
Partager