From: Eric van der Vlist (vdv@dyomedea.com)
Date: 03/04/2001 - 08:44
Raymond Bourges wrote:
>
> Bonjour à tous,
>
> J'ai besoin de faire une transformation XSL mais je ne sais pas comment faire.
>
> J'ai une balise qui a un attribut que se nome NIV (pour NIVEAU qui varie de 1 à N) et je voudrais pouvoir insérer NIV espaces insécables ( ) avant le contenu de cette balise.
>
> j'aurais aimé utiliser une instruction du type "xsl:for 1 à NIV insérer  " mais çà n'existe pas.
>
> Pouvez-vous me donner une solution ?
Pour résoudre ce type de problème de manière générale, il faut
travailler de manière récursive, par exemple:
<xsl:template name="caracteres-multiples">
<xls:param name="car" select="' '"/>
<xls:param name="nbcar" select="10"/>
<xls:param name="index" select="0"/>
<xsl:if test="$nbcar > $index">
<xsl:text><xsl:value-of select="$car"/></xsl:text>
<xsl:call-template name="caracteres-multiples">
<xsl:with-param name="car" select="$car"/>
<xsl:with-param name="nbcar" select="$nbcar"/>
<xsl:with-param name="index" select="$index + 1"/>
</xsl:call-template>
</xsl:if>
</xsl:template>
que vous pourrez appeler par:
<xsl:call-template name="caracteres-multiples">
<xsl:with-param name="nbcar" select="@NIV"/>
</xsl:call-template>
Pour votre cas particulier, il y une astuce pour éviter cela:
<xsl:value-of select="substring('    ', 1, @NIV)"/>
(en dimensionnant la chaine de " " en fonction du nombre maximum de
niveaux).
Cordialement,
Eric van der Vlist
> Merci.
>
> *******************
> * Raymond Bourges
> * Centre de Ressources Informatiques
> * Université de Rennes 1
> * Tel : 02.99.84.71.32
> * Fax : 02.99.84.71.11
> *******************
--
See you in San Jose for SD West:
http://cmp.bluedot.com/re/attendee/sdw/speakerPage.esp?speakerId=36534626
------------------------------------------------------------------------
Eric van der Vlist Dyomedea http://dyomedea.com
http://xmlfr.org http://4xt.org http://examplotron.org
------------------------------------------------------------------------
--
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
|