From: cecile (Cecile.Guilloux@ujf-grenoble.fr)
Date: 05/01/2001 - 15:20
Bonjour,
Je travaille, dans le cadre dans le cadre du projet europeen ARIADNE a
l'elaboration de la version XSLT d'un compilateur qui traduit un
document XML en plusieurs pages HTML (constituant un document
pédagogique).
j'aimerai pouvoir declarer plusieurs listes de variables a l'aide de
l'element xsl:variable ; la selection d'une liste a appliquer etant
commandee par la valeur d'une balise (language).
Document XML
<exercise>
<head>
<name> name</name>
<author>author</author>
<discipline> discipline</discipline>
<meta_informations>
<date>date of creation</date>
<language>language of the exercise</language>
</meta_informations>
</head>
<body>
../..
</body>
</exercise>
Pour se faire, il me faudrait faudrait utiliser un element xsl:if ou
xsl:choose, donc effectuer le test dans un template.
<xsl:template match="exercise">
<xsl:if >
<xsl:variable name="WORD_AIM">Objectif&nbsp; :</xsl:variable>
<xsl:variable name="WORD_AUTHOR">Auteur&nbsp; :</xsl:variable>
<xsl:variable name="WORD_DISCIPLINE">Discipline&nbsp;
:</xsl:variable>
...
</xsl:if>
<xsl:apply-templates select ="head"/>
</xsl:template>
<xsl:template match="head">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html;
charset=iso-8859-1"/>
</head>
<body>
<table height="100%" width="95%">
<tr>
<td class="t1" colspan="2">
<h1> <xsl:apply-templates select="child::name"/></h1>
<table>
<tr>
<td class="info"><xsl:value-of select="$WORD_AIM"
disable-output-escaping="yes"/></td>
<td><xsl:apply-templates select="child::aim"/></td>
</tr>
<tr>
<td class="info"><xsl:value-of select="$WORD_AUTHOR"
disable-output-escaping="yes"/></td>
<td><xsl:apply-templates select="child::author"/></td>
</tr>
../..
</body>
</html>
</xsl:template>
Le probleme est que mes variables ne sont pas reconnues.
Il est possible que meme appelee dans le premier template (par
<xsl:apply-templates select ="head"/> ), l'instruction <xsl:template
match="exercise"> reste une instruction de premier niveau. Mes variables
etant declarees comme enfants d'un noeud <xsl:if>, lui meme enfant d'un
<xsl:template>, elles ne sont pas accessibles aux enfants d'autres
<xsl:template>
Dites-moi si je me trompe et si il y a une solution a mon probleme ?
merci,
cecile Guilloux
--
Devenez redacteur <XML>fr et contribuez au developpement du
xml francophone (http://xmlfr.org/infos/redacteurs/) !
Liste de diffusion "xml-tech@xmlfr.org" (http://xmlfr.org).
Cette liste est a votre disposition pour discuter en francais de
tout sujet technique lie a XML.
Pour resilier votre abonnement, envoyez un message contenant
la commande "unsubscribe" a xml-tech-request@xmlfr.org
(mailto:xml-tech-request@xmlfr.org?Subject=unsubscribe)
Archive générée par hypermail 2.1.3 le 28/06/2004 - 11:05 UTC
webmaster@xmlfr.org
|