From: Frederic Laurent (frederic.laurent@bigfoot.com)
Date: 18/10/2000 - 08:13
bonjour,
j'aimerais utiliser les variables dans les feuilles de style de la même
manière que dans un langage de programmation c'est à dire
int a;
if (quelque chose)
a='p1'
else
a='p2'
et puis aprés j'utilise cette variable a pour générer un noeud par
exemple
<p class="$a">...</p>
Dans xsl, la définition d'une variable est considérée comme une valeur
finale
valable au bloc dans lequel est faite la déclaration. Or moi je voudrais
une
définition valable à ma règle (xsl:template)
J'ai deux fichiers de test
---------------------- t.xml -----------------------
<?xml version="1.0" encoding="ISO-8859-1" ?>
<doc>
<a val="toto">un element</a>
<a val="tutu">un text</a>
</doc>
----------------------------------------------------
Si je décommente le xsl:variable, cl vaut def dans tous les cas
si je commente, j'ai
XSL Error: pattern = '$cl'
VariableReference given for variable out of context or without
definition! Name = cl, source tree node: a
XPATH: pattern = '$cl'
d'où ma questions : comment faire ???
------------------ t.xsl ---------------------------
<?xml version='1.0' encoding="ISO-8859-1" ?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
version="1.0">
<xsl:output method="html" indent="yes" encoding="ISO-8859-1"/>
<xsl:template match="/">
<html><head>
</head>
<body>
<xsl:apply-templates />
</body></html>
</xsl:template>
<xsl:template match="a">
<!-- <xsl:variable name="cl">def</xsl:variable> -->
<xsl:choose>
<xsl:when test="@val=toto"><xsl:variable
name="cl">p1</xsl:variable></xsl:when>
<xsl:otherwise><xsl:variable
name="cl">p2</xsl:variable></xsl:otherwise>
</xsl:choose>
<p class="{$cl}">
<xsl:value-of select="text()"/>
</p>
</xsl:template>
</xsl:stylesheet>
----------------------------------------------------
merci d'avance
--
Frédéric LAURENT
--
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
|