Besoin aide - Fichier XSL en XML

Fermé
Geneviève - 10 mars 2007 à 02:44
WarLocG Messages postés 22 Date d'inscription vendredi 6 janvier 2006 Statut Membre Dernière intervention 8 décembre 2007 - 8 déc. 2007 à 00:02
Bonjour,

J'ai un fichier XSL qui affiche une page blanche lors de l'exécution? Que faire? Je dois calculer la moyenne de chacun des étudiants?

<?xml version="1.0" encoding="ISO-8859-1"?>
<xsl:stylesheet version = '1.0'
xmlns:xsl='http://www.w3.org/1999/XSL/Transform'>

<xsl:apply-template match="étudiant" >
<xsl:sort select="substring-after(nom,' ')" order="ascending"/>
<xsl:apply-template>
</xsl:apply-template>

<xsl:template match="moyenne">
<li>
<xsl:value-of select="nom" />
(<xsl:value-of select="sum(note/)div{count(note)}" />)
</li>
</xsl:template>
</xsl:apply-template>

</xsl:stylesheet>


MON FICHIER XML

<?xml version="1.0" encoding="ISO-8859-1" ?>
<?xml-stylesheet href="class.xsl" type="text/xsl" ?>
<université>
<étudiant><nom>Réjean Tremblay</nom>
<cours sigle="INF8430" note="89" />
<cours sigle="INF1030" note="69" />
<cours sigle="INF1230" note="75" /></étudiant>
<étudiant><nom>Martin Lambert</nom>
<cours sigle="INF8430" note="75" />
<cours sigle="INF1030" note="72" />
<cours sigle="INF1230" note="73" /></étudiant>
<étudiant><nom>Luc Alain</nom>
<cours sigle="INF9430" note="39" />
<cours sigle="INF1030" note="89" />
<cours sigle="INF1230" note="79" /></étudiant>
<étudiant><nom>Olive Saint-Amant</nom>
<cours sigle="INF8430" note="91" />
<cours sigle="INF1230" note="99" /></étudiant>
</université>


Geneviève
A voir également:

2 réponses

j'ai un dossier xsl que j'aimeré lire mé imposible comen faire?
0
WarLocG Messages postés 22 Date d'inscription vendredi 6 janvier 2006 Statut Membre Dernière intervention 8 décembre 2007
8 déc. 2007 à 00:02
Bonsoir,

@Genevieve: plusieurs erreurs dont celles-ci:

-<xsl:apply-templates> s'écrit avec un "s" au bout de templates
-<xsl:apply-templates> se situe à l'interieur d'une balise <xsl:template>
-<xsl:sort> doit se situer entre <xsl:apply-templates> et </xsl:apply-templates>
-aucun noeud "moyenne" donc ceci ne sert à rien : <xsl:template match="moyenne">
-l'acces au attribut se fait avec @ devant le nom de l'attribut

Voici une petite référence: https://www.w3.org/TR/xslt/all/

Et voici ma solution proposée pour ton fichier xsl:

<?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:apply-templates>
<xsl:sort select="substring-after(nom,' ')" order="ascending"/>
</xsl:apply-templates>
</xsl:template>

<xsl:template match="étudiant">
<li>
<xsl:value-of select="nom" />
(
<xsl:value-of select="sum(cours/@note)div(count(cours/@note))" />
)
</li>
</xsl:template>

</xsl:stylesheet>

Le resultat est le suivant:

Réjean Tremblay ( 77.66666666666667 )
Martin Lambert ( 73.33333333333333 )
Luc Alain ( 69 )
Olive Saint-Amant ( 95 )

(*) avec le point du <LI> devant.

PS: N'oublie pas d'indenter ton code, c'est plus facile pour la lecture.

@sab: pour lire un fichier xsl il faut lire le fichier xml correspondant a ton fichier xsl avec Internet Explorer ( je sais pas si Firefox gère l'XSL parcontre)
0