From: Jandia Cyril (cjandia@logfi.fr)
Date: 04/04/2002 - 07:25
Bonjour,
> De : GENDREAU Miguel
> À : 'xml-tech@xmlfr.org'
> Objet : [xml-tech] passage de paramètre
>
> Bonjour,
> Je cherche à passer la largeur de ma table en paramètre en
> procèdant ainsi :
>
> <xsl:variable name="largeur " />
> <xsl:if test="($imageAccueil='non')">
> <xsl:variable name="largeur " select="410"/>
> </xsl:if>
> <xsl:if test="(./entete/imageTitre and $imageAccueil='oui')">
> <xsl:variable name="largeur " select="320"/>
> </xsl:if>
> <xsl:element name="table">
> <xsl:attribute name="bgcolor">white</xsl:attribute>
> <xsl:attribute name="width"><xsl:value-of select="$largeur "
> /></xsl:attribute>
> ...
>
> En retour, j'ai le message d'erreur: "conflicting variable
> bindings 'largeur
> "
>
> Qui peut m'aider ?
Il s'agit d'une erreur que l'on fait facilement avec XSLT au début :
distinguer (par des occurrences syntaxiques... distinctes, donc :-) la
déclaration et la définition d'une variable ("XSLT ne le veut pas" ;-) - à
l'inverse de ce que l'on connait pour d'autres langages plus "procéduraux"
que "fonctionnels"/"déclaratifs". Supprimez donc la première occurrence de
cet élément <xsl:variable...> qui précède vos deux tests <xsl:if...>.
En outre, il semble bien que les prédicats de ces tests puissent ne pas être
totalement disjoints : tous deux pourraient être évalués à vrai
simultanément; dès lors, à l'issue du traitement des <xsl:if...>, il y
aurait toujours deux définitions possibles pour votre variable "largeur", et
ce, dans la même portée : mêmes conséquences que précédemment.
Je vous suggère donc de vérifier, si, en toute logique (i.e, en fonction des
informations portées par votre document source) cela peut être le cas ou non
: si oui, à vous de corriger ;-)
> Cordialement,
> Miguel Gendreau
Cordialement,
Cyril Jandia
--
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:06 UTC
webmaster@xmlfr.org
|