Boucle en XSL

Résolu
justforthesnow Messages postés 8 Date d'inscription mardi 23 août 2005 Statut Membre Dernière intervention 7 novembre 2009 - 8 oct. 2009 à 14:17
Zobibol Messages postés 469 Date d'inscription mercredi 9 janvier 2002 Statut Membre Dernière intervention 20 février 2017 - 8 oct. 2009 à 15:36
Bonjour à tous,

je suis en train de découvrir le XSL.
J'ai fait une boucle qui parcourt mes noeuds. Ca fonctionne.
Ce que je voudrais faire c'est lire les noeuds 2 par 2.

En gros j'affiche un tableau de 2 colonnes.
La première une image la deuxième du texte.
LA je voudrais pareil mais un coup avec l'image a gauche puis a droite.

Du coup mon tableau fait 3 colonnes. Et la colonne de texte a un colspan=2

 <xsl:for-each select="Liste/photo">
      <tr>
        <td><xsl:value-of select="image"/></td>
        <td colspan="2"><xsl:value-of select="texte"/>

</td>
      </tr>
      <tr>
        <td colspan="2"><xsl:value-of select="texte"/>

</td>
        <td><xsl:value-of select="image"/></td>        
      </tr>
      </xsl:for-each>


Sauf que la je lis deux fois le même nœud

7 réponses

Zobibol Messages postés 469 Date d'inscription mercredi 9 janvier 2002 Statut Membre Dernière intervention 20 février 2017 6
8 oct. 2009 à 15:22
Bien le bonjour(s)
Du xsl, voilà qui change...
Donc, dans le for-each, il y a une méthode appelée : position() (allez, devinez ce qu'elle peut bien faire...)
Il suffit donc de la cumulée avec un modulo et hop, l'affaire est faite :

<xsl:for-each select="liste/photo">
 <xsl:if test="position() mod 2 = 1" >
      <tr>
        <td><xsl:value-of select="image"/></td>
        <td ><xsl:value-of select="texte"/>

</td>
<td><xsl:value-of select="position()"/></td>
      </tr>
  </xsl:if>
  <xsl:if test="position() mod 2 = 0" >
      <tr>
        <td ><xsl:value-of select="texte"/>

</td>
        <td><xsl:value-of select="image"/></td>      
<td><xsl:value-of select="position()"/></td>		
      </tr>
  </xsl:if>
     </xsl:for-each>




[o-_-o]
3
Bul3 Messages postés 4933 Date d'inscription samedi 1 juillet 2006 Statut Membre Dernière intervention 2 février 2015 16
8 oct. 2009 à 14:35
Bonjour,

vous voulez afficher les "données"
impaires à gauche et les paires à droite ?
c'est ça ? j'ai compris ?

je ne parierais pas qu'on puise
faire ça uniquement en xsl (?)
for-each c'est bien "pour chaque"
mais je suis loin d'être un expert,
il y a peut-être un moyen...

sinon, c'est pas mal, hein, le xsl....

Cordialement [mon Site] [M'écrire] Bul
0
justforthesnow Messages postés 8 Date d'inscription mardi 23 août 2005 Statut Membre Dernière intervention 7 novembre 2009
8 oct. 2009 à 14:39
Je dirais même plus que c'est pas mal.
Je ne connaissais pas du tout avant que vous m'en parliez !
Quelle est la différence avec XSLT d'ailleurs ?

Pour mon problème je peux le résoudre en créant de nouvelles balises mais j'aimerais éviter.

Merci de votre aide !
0
Bul3 Messages postés 4933 Date d'inscription samedi 1 juillet 2006 Statut Membre Dernière intervention 2 février 2015 16
8 oct. 2009 à 15:02
>>xslt
lu chez w3c

Cette spécification définit la syntaxe et la sémantique de
XSLT, qui est un langage permettant de transformer des
documents XML en d'autres documents XML.
XSLT est conçu pour être utilisé comme une partie de XSL,
le langage des feuilles de style de XML. En plus de XSLT,
XSL inclus un vocabulaire XML pour la spécification de
formatage. XSL spécifie les règles de présentation d'un
document XML en utilisant XSLT pour décrire comment le
document peut être transformé en un autre document qui
utilise le vocabulaire de formatage.
XSLT est aussi conçu pour être utilisé indépendamment de XSL.
Cependant, XSLT n'est pas censé être utilisé comme un langage
de transformation XML à vocation générale. Il a surtout été
conçu pour les types de transformations nécessaires lorsque
XSLT est utilisé comme une partie de XSL....


mais le mieux : ;o) cliquez ici

>>en créant de nouvelles balises mais j'aimerais éviter
certes, ce serait "mieux" d'éviter
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
justforthesnow Messages postés 8 Date d'inscription mardi 23 août 2005 Statut Membre Dernière intervention 7 novembre 2009
8 oct. 2009 à 15:28
Mais c'est que c'est parfais ton code !
Youhou!!! (voix d'Homer)

Je te remercie te don aide, ca fonctionne parfaitement.
0
Bul3 Messages postés 4933 Date d'inscription samedi 1 juillet 2006 Statut Membre Dernière intervention 2 février 2015 16
8 oct. 2009 à 15:33
ben voila... connaissais pas position() ! nickel zobibol.
0
Zobibol Messages postés 469 Date d'inscription mercredi 9 janvier 2002 Statut Membre Dernière intervention 20 février 2017 6
8 oct. 2009 à 15:36
Si y a que ça pour vous faire plaisir


[o-_-o]
0
Rejoignez-nous