Bonjour,
On mar, 2005-07-26 at 12:13 +0200, Arno wrote:
> cette fonction marche tres bien pour des entiers:
>
> fonction:
> <xsl:template name="boucle">
> <xsl:param name="debut" select="0" />
> <xsl:param name="fin" select="0" />
>
> <xsl:text>i = </xsl:text>
> <xsl:value-of select="$debut" />
> <br/>
>
> <xsl:if test="$debut < $fin">
> <xsl:call-template name="boucle">
> <xsl:with-param name="debut" select="($debut)+1" />
> <xsl:with-param name="fin" select="$fin" />
> </xsl:call-template>
> </xsl:if>
> </xsl:template>
>
>
> mais j'aimerais afficher les lettres de B à Z...merci
> appel:
>
> <xsl:call-template name="boucle">
> <xsl:with-param name="debut" select="B" />
Attention, select="B" sélectionne les éléments "B" sous le noeud courant
et non le caractère "B"!
> <xsl:with-param name="fin" select="Z"/>
> </xsl:call-template>
La transformation suivante produit le résultat attendu (et en plus, vous
pouvez même changer d'alphabet :-) )...
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
<xsl:template match="/">
<xsl:call-template name="boucle">
<xsl:with-param name="debut">B</xsl:with-param>
<xsl:with-param name="fin">Z</xsl:with-param>
</xsl:call-template>
</xsl:template>
<xsl:template name="boucle">
<xsl:param name="debut">A</xsl:param>
<xsl:param name="fin">Z</xsl:param>
<xsl:param name="lettres">ABCDEFGHIJKLMNOPQRSTUVWXYZ</xsl:param>
<xsl:text>Lettre = </xsl:text>
<xsl:value-of select="$debut"/>
<br/>
<xsl:variable name="position" select="string-length(substring-before($lettres, $debut)) + 1"/>
<xsl:variable name="suivant" select="substring($lettres, $position + 1, 1)"/>
<xsl:if test="$suivant != '' and $debut != $fin">
<xsl:call-template name="boucle">
<xsl:with-param name="debut" select="$suivant"/>
<xsl:with-param name="fin" select="$fin"/>
<xsl:with-param name="lettres" select="$lettres"/>
</xsl:call-template>
</xsl:if>
</xsl:template>
</xsl:stylesheet>
Cordialement,
Eric van der Vlist
--
Did you know it? Python has now a Relax NG (partial) implementation.
http://advogato.org/proj/xvif/
------------------------------------------------------------------------
Eric van der Vlist http://xmlfr.org http://dyomedea.com
(ISO) RELAX NG ISBN:0-596-00421-4 http://oreilly.com/catalog/relax
(W3C) XML Schema ISBN:0-596-00252-1 http://oreilly.com/catalog/xmlschema
------------------------------------------------------------------------
--
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)
Received on Tue Jul 26 12:20:19 2005