Besoin aide - Fichier XSL en XML
Geneviève
-
WarLocG Messages postés 22 Statut Membre -
WarLocG Messages postés 22 Statut Membre -
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
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:
- Besoin aide - Fichier XSL en XML
- Fichier bin - Guide
- Fichier epub - Guide
- Fichier rar - Guide
- Comment réduire la taille d'un fichier - Guide
- Fichier .dat - Guide
2 réponses
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)
@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)