From: Ziad EL KHATIB (z.elkhatib@vivacances.fr)
Date: 18/11/2003 - 13:06
Merci Denis,
J'ai créé le template mais le problème c'est que je fais pleins de traitements dans cette page et toute la page est englobée dans un template déjà. Du coup, j'ai une erreur qui dit que je n'ai pas le droit de créer un template dans un template. Une idée ?
-----Message d'origine-----
De : Denis BAYARD [mailto:denis.bayard@edfgdf.fr]
Envoyé : mardi 18 novembre 2003 12:06
À : xml-tech@xmlfr.org
Objet : [xml-tech] Réf. : xsl:if ...
Bonjour
Il est possible de créer une règle (appelée ici abitrairement
"selection"), et de l'appeler pour chaque option.
Je n'ai pas testé le code suivant, mais l'idée y est présente.
<select>
<xsl:attribute name="name">CABIN</xsl:attribute>
<xsl:attribute name="checked"><xsl:value-of
select="./CABIN_OUT/CODE"/></xsl:attribute>
<xsl:attribute name="class">content_listbox</xsl:attribute>
<xsl:call-template name="selection">
<xsl:with-param name="valeur">E</xsl:with-param>
</xsl:call-template>
<xsl:call-template name="selection">
<xsl:with-param name="valeur">B</xsl:with-param>
</xsl:call-template>
<xsl:call-template name="selection">
<xsl:with-param name="valeur">F</xsl:with-param>
</xsl:call-template>
</select>
<!-- Et voici la règle -->
<xsl:template name="selection">
<xsl:param name="valeur"/>
<option>
<xsl:attribute name="value"><xsl:value-of
select="$valeur"/></xsl:attribute>
<xsl:if test="./CABIN_OUT/CODE = '$valeur'" >
<xsl:attribute
name="selected">selected</xsl:attribute>
</xsl:if>
</option>
</xsl:template>
Veuillez répondre à xml-tech@xmlfr.org
Envoyé par : xml-tech-bounce@xmlfr.org
Pour : xml-tech@xmlfr.org
Objet : [xml-tech] xsl:if ...
Bonjour tout le monde,
Dans mon xsl, j'ai pas mal de listes de selection (cf exemple ci-dessous).
Et pour chaque option du select, je fais un test if et je le mets a
selected=selected. Ce qui fait que je peux arriver a avoir pas mal de
boucles if(3 dans mon exemples deja...). Il y a surement un moyen d'eviter
ca et d'optimiser le code.
Je connais xsl:choose et xsl:when, est ce que c'est mieux ? y a-t-il autre
chose ?
Merci.
<select>
<xsl:attribute name="name">CABIN</xsl:attribute>
<xsl:attribute name="checked"><xsl:value-of
select="./CABIN_OUT/CODE"/></xsl:attribute>
<xsl:attribute name="class">content_listbox</xsl:attribute>
<option>
<xsl:attribute name="value">E</xsl:attribute>
<xsl:if test="./CABIN_OUT/CODE = 'E'" >
<xsl:attribute name="selected">selected</xsl:attribute>
</xsl:if>
Economique
</option>
<option>
<xsl:attribute name="value">B</xsl:attribute>
<xsl:if test="./CABIN_OUT/CODE = 'B'" >
<xsl:attribute name="selected">selected</xsl:attribute>
</xsl:if>
Business
</option>
<option>
<xsl:attribute name="value">F</xsl:attribute>
<xsl:if test="./CABIN_OUT/CODE = 'F'" >
<xsl:attribute name="SELECTED"/>
</xsl:if>
Première
</option>
</select>
--
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)
--
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
|