Bonjour,
Ca fait un moment que je sèche littéralement sur un problème que je n'arrive pas à résoudre en XSLT. J'aurais besoin que quelqu'un m'aide, en plus je suis débutant en XML. Ce que je voudrais faire c'est calculer la moyenne d'un étudiant sachant que chaque note à un coefficient. Le problème, c'est que lorsque je veux faire la somme des produits ça ne marche pas j'ai : The Value is not a node-set. Je ne sais vraiment plus comment m'y prendre pour ce calcul qui est pourtant simple. J'espère que quelqu'un pourra m'aider sur ce forum. Je mets mon code XML et mon code XSLT ci-dessous:
MON CODE XML:
<TEACHING>
<ETUDIANT ident="1" >
<NOM>toto</NOM>
</ETUDIANT>
<ETUDIANT ident="2" >
<NOM>bill</NOM>
</ETUDIANT>
...
<NOTE ident="1" etudiant="1">
<SCORE>15</SCORE>
</NOTE>
<NOTE ident="2" etudiant="1">
<SCORE>12</SCORE>
</NOTE>
...
<COEFFICIENT ident="1" note="1"><VALEUR>2</VALEUR></COEFFICIENT>
...
</TEACHING>
MON CODE XSLT:
<?xml version="1.0" encoding="ISO-8859-1"?>
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="/">
<xsl:for-each select="TEACHING/ETUDIANT">
<xsl:variable name="student3" select="@ident"/>
<xsl:variable name="course3" select="@note"/>
<xsl:if test="$student3=1 >
<xsl:variable name="sumnote" select="../NOTE[@etudiant=$student3]/SCORE"/>
<xsl:variable name="sumcoef" select="../COEFFICIENT[@note]/VALEUR"/>
<xsl:variable name="result" select="sum($sumnote*sumcoef) div
sum($sumcoef)"/>
<xsl:value-of select="$result" />
</xsl:if>
</xsl:for-each>
</xsl:template>
</xsl:stylesheet>