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) > >