Re: [XSL] Optimisation

[email protected] Mon, 08 Jan 2007 18:29:23 +0100
Newsgroups gmane.text.xml.french.tech
Message-ID <[email protected]>
Bonjour,

J'ai souvent dû faire ce type de traitement mais je n'utilise jamais current()
car j'ai toujours réussi à faire ce que je voulais avec des variables et c'est
plus uniforme comme celà :-) ...

current()/position() ne peut pas marcher car position() fait référence à une
liste de noeuds....

Cordialement,

Alain COUTHURES

Selon Jean-Luc Mathieu <[email protected]>:

> Bonjour !
>
> Soit deux noeuds dans une arborescence situés à des endroits
> complètement différents. Sous chacun de ces noeuds, le même nombre
> d'enfants existent. Je souhaite faire une itération sur le premier
> noeud, et, pour chaque enfant, afficher son contenu mais également le
> contenu de l'enfant situé à la même position sous le deuxième noeud.
> Voici un fragment de code XSL réalisant cela :
>
> <xsl:for-each select="/root/noeud1/subnode">
>   <xsl:variable name="curpos" select="position()"/>
>   noeud 1 : <xsl:value-of select="." />, noeud 2 : <xsl:value-of
> select="/root/noeud2/subnode[position()=$curpos]" />
> </xsl:for-each>
>
> Ma question est la suivante : n'y aurait-il pas moyen de s'affranchir de
> l'utilisation d'une variable stockant la position, et d'utiliser une
> simple expression dans le deuxième <value-of> ? J'ai cherché du côté de
> l'utilisation de current(), mais je n'arrive pas à obtenir la position
> du noeud courant (i.e. "current()/position()" qui bien sûr ne fonctionne
> pas).
>
> Quelqu'un a une idée ?
> D'avance, merci !
> Jean-Luc
>
> --
> Devenez redacteur <XML>fr et contribuez au developpement du
> xml francophone (http://xmlfr.org/infos/redacteurs/) !
>
> Liste de diffusion "[email protected]" (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 [email protected]
> (mailto:[email protected]?Subject=unsubscribe)
>
>