From: Denis BAYARD (denis.bayard@edfgdf.fr)
Date: 18/11/2003 - 11:06
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)
Archive générée par hypermail 2.1.3 le 28/06/2004 - 11:06 UTC
webmaster@xmlfr.org
|