Bonjour à tous d'un petit nouveau
J'ai un problème sur lequel je planche depuis 4 jours et pour lequel je n'ai toujours pas trouvé de solution.
Bon c'est un problème de débutant que je souhaitais résoudre tout seul dans mon coin mais j'ai vraiment du mal!
J'ai la dtd suivante :
Je souhaite récupérer le min et le max des notes concernant chaque matière. Il m'a donc semblé judicieux décrire dans un fichier xsl les requêtes suivantes :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13 <!ELEMENT enseignement (matiere*,etudiant)> <!ELEMENT matiere (libelle)> <!ATTLIST matiere ident ID #REQUIRED responsable IDREF #IMPLIED> <!ELEMENT libelle (#PCDATA)> <!ELEMENT etudiant(nom*,prenom*,note)> <!ATTLIST etudiant ident ID #REQUIRED> <!ElEMENT nom (#PCDATA)> <!ELEMENT prenom (#PCDATA)> <!ELEMENT note (#PCDATA)> <!ATTLIST note ident ID #REQUIRED matiere IDREF #IMPLIED>
Hélas ça ne marche pas du tout, et j'ai vraiment tout tenté ! Il semblerait que mon xsl:sort ne me donne pas les notes d'une même matières dans un ordre croissant (ou décroissant quand je le demande d'ailleurs).
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 <xsl:for-each select="enseignement/matiere"> <xsl:variable name="mat" select="@ident"/> <xsl:value-of select="libelle"/> <xsl:for-each select="../etudiant/note[@matiere=$mat]"> <xsl:sort select="."/> <xsl:if test="position()=1"> Note maximale : <xsl:value-of select="."/></xsl:if> </xsl:for-each> <xsl:for-each select="../etudiant/note[@matiere=$mat]"> <xsl:sort select="." order="descending"/> <xsl:if test="position()=1"> Note minimale : <xsl:value-of select="."/></xsl:if> </xsl:for-each> </xsl:for-each>
Voilà, si parmis vous quelqu'un a perçoit mon problème, je lui serais éternellemnt reconnaissant
Partager