From: Eric van der Vlist (vdv@dyomedea.com)
Date: 23/07/2004 - 14:55
On Fri, 2004-07-23 at 16:41, Benoit Bouy=?ISO-8859-1?Q?=E9?= wrote:
> Bonjour, j'ai un probleme que je n'arrive pas à résoudre en XSL
>
> <xsl:template name="champs_javascript">
> <xsl:for-each select="/root/form/rub/q">
> <xsl:if test="position() <= ($nb * $pagecourante) and position() > ($nb * ($pagecourante - 1))and(./@statut='obligatoire')">
> "<xsl:value-of select="@id"/>",
> </xsl:if>
> </xsl:for-each>
> </xsl:template>
>
> Lors de l'appel de ce template j'obtiens une chaine du type "q1","q2","q4",
> Cette chaine est un tableau que je passe à un javascript.
> Ce que je souhaiterai c'est que pour le dernier element, la virgule n'apparaisse pas.
De manière générale (mais c'est subjectif) je trouve plus simple de
rajouter une virgule avant toutes les occurrences sauf la première que
de rajouter une virgule après toutes les occurrence sauf la dernière
mais je ne pense pas que ce soit la source de votre problème.
La complexité de votre expression XPath me fait penser que vous ne nous
avez pas tout dit dans l'énoncer de votre problème :).
On voit des variables $nb et $pagecourante qui suggèrent un mécanisme de
pagination et un test ./@statut='obligatoire' qui suggère que vous ne
voulez traiter que les éléments <q/> dont l'attribut @statut a la valeur
'obligatoire'?
Ces deux facteurs ont un impact sur la détection de la dernière (ou de
la première) occurrence et pour simplifier la chose, vous pourriez les
remonter dans le xsl:for-each et écrire quelque chose du type (si j'ai
bien compris votre problème) :
<xsl:template name="champs_javascript">
<xsl:for-each select="/root/form/rub/q[position() <= ($nb *
$pagecourante) and position() > ($nb * ($pagecourante -
1))and(./@statut='obligatoire')]">
<xsl:if test="position() > 1">, </xsl:if>
<xsl:text>"</xsl:text>
<xsl:value-of select="@id"/>"
<xsl:text>"</xsl:text>
</xsl:for-each>
</xsl:template>
Cordialement,
Eric van der Vlist
--
Carnet web :
http://eric.van-der-vlist.com/blog?t=category&a=Fran%C3%A7ais
Upcoming XML schema languages tutorial:
- Portland -half day- (27/07/2004) http://masl.to/?E6ED13728
------------------------------------------------------------------------
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)
Archive générée par hypermail 2.1.3 le 30/07/2004 - 13:32 UTC
webmaster@xmlfr.org
|