[xml/xsl] Problème de noeuds et attributs
Bonjour à tous d'un petit nouveau :wink:
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 :
Code:
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> |
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:
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> |
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).
Voilà, si parmis vous quelqu'un a perçoit mon problème, je lui serais éternellemnt reconnaissant :)