IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

XSL/XSLT/XPATH XML Discussion :

[XSLT] Plusieurs noeuds fils en 1 tour de boucle


Sujet :

XSL/XSLT/XPATH XML

  1. #1
    Membre éclairé Avatar de Korko Fain
    Profil pro
    Étudiant
    Inscrit en
    Août 2005
    Messages
    632
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Août 2005
    Messages : 632
    Points : 718
    Points
    718
    Par défaut [XSLT] Plusieurs noeuds fils en 1 tour de boucle
    Bonjour, c'est encore moi ^^

    Pour des raisons de design (ce n'est pas moi qui m'en occupe alors ne me jetez pas la pierre si il ne respecte pas les standards, je n'y suis pour rien), je dois analyser en xsl plusieurs noeuds en un tour de boucle. Par boucle j'entend un seul appel à <xsl:template>

    Pour le moment j'utilise cela :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    	<xsl:template match="/liste">
    		<tr>
    			<td width="15"></td>
    			<td width="180">
    				<div align="center">
    					<xsl:apply-templates select="product" />
    				</div>
    			</td>
    			<td width="180">
    				<div align="center">
    					<xsl:apply-templates select="product" />
    				</div>
    			</td>
    			<td width="180">
    				<div align="center">
    					<xsl:apply-templates select="product" />
    				</div>
    			</td>
    			<td width="180">
    				<div align="center">
    					<xsl:apply-templates select="product" />
    				</div>
    			</td>
    			<td width="15"></td>
    		</tr>
    		<tr height="18">
    			<td colspan="6" height="18">
     
    			</td>
    		</tr>
    		<tr height="264">
    			<td height="264"></td>
    			<td height="264">
    				<div align="center">
    					<xsl:apply-templates select="product" />
    				</div>
    			</td>
    			<td height="264">
    				<div align="center">
    					<xsl:apply-templates select="product" />
    				</div>
    			</td>
    			<td height="264">
    				<div align="center">
    					<xsl:apply-templates select="product" />
    				</div>
    			</td>
    			<td height="264">
    				<div align="center">
    					<xsl:apply-templates select="product" />
    				</div>
    			</td>
    			<td height="264"></td>
    		</tr>
        </xsl:template>
    Mais evidemment, il me repete 8 fois le même noeud. J'aimerai donc pouvoir passer au suivant.
    J'ai cherché mais je ne trouve rien qui corresponde à ce que je recherche.

    Merci beaucoup d'avance.

  2. #2
    Membre éclairé
    Inscrit en
    Octobre 2005
    Messages
    847
    Détails du profil
    Informations forums :
    Inscription : Octobre 2005
    Messages : 847
    Points : 841
    Points
    841
    Par défaut
    pourquoi tu n'utilises pas un xsl:for-each ?

  3. #3
    Membre éclairé Avatar de Korko Fain
    Profil pro
    Étudiant
    Inscrit en
    Août 2005
    Messages
    632
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Août 2005
    Messages : 632
    Points : 718
    Points
    718
    Par défaut
    car le for-each ne me permettra pas à moin de faire beaucoup de conditions de changer l'aspect de mes balises (puisque le design n'est pas le meme pour les 8 balises), il ne me permettra pas de faire un saut de ligne au bout de 4 (le
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <xsl:when test="position() mod 4 = 0"></tr><tr></xsl:when>
    n'est pas valide !) et de plus, lorsque je n'ai pas les 8 éléments, il ne me fera que le nombre qu'il y en a hors j'ai nécéssairement besoin qu'il fasse 8 fois le tour. (si il n'y a pas de noeud, il retourne une case vide)

  4. #4
    Membre éclairé Avatar de Korko Fain
    Profil pro
    Étudiant
    Inscrit en
    Août 2005
    Messages
    632
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Août 2005
    Messages : 632
    Points : 718
    Points
    718
    Par défaut
    Bon je n'ai pas reussi en 1 boucle mais j'ai reussi à appliquer le for-each en me triturant un peu la tete.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    	<xsl:template match="/liste">
    		<tr>
    			<td width="15"></td>
    			<xsl:for-each select="product[position() &lt; 4]">
    				<td width="180">
    					<div align="center">
    						<xsl:apply-templates select="." />
    					</div>
    				</td>
    			</xsl:for-each>
    			<td width="15"></td>
    		</tr>
    		<tr height="18">
    			<td colspan="6" height="18">
     
    			</td>
    		</tr>
    		<tr height="264">
    			<td height="264"></td>
    			<xsl:for-each select="product[position() &gt; 4]">
    				<td height="264">
    					<div align="center">
    						<xsl:apply-templates select="." />
    					</div>
    				</td>
    			</xsl:for-each>
    			<td height="264"></td>
    		</tr>
        </xsl:template>

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [XSLT] for-each imbriqué et plusieurs noeuds
    Par Trunks dans le forum XSL/XSLT/XPATH
    Réponses: 3
    Dernier message: 31/10/2008, 15h08
  2. Réponses: 3
    Dernier message: 17/08/2007, 11h20
  3. [XML - XSLT] Plusieurs xslt pour un fichier xml
    Par Laure888 dans le forum XSL/XSLT/XPATH
    Réponses: 10
    Dernier message: 17/03/2006, 15h16
  4. Pb d'Ajout un noeud fils dans une arborescence
    Par oramine dans le forum Oracle
    Réponses: 5
    Dernier message: 21/12/2004, 15h39
  5. [DOM] suppression d'un noeud fils xml en JAVA
    Par alexandre54 dans le forum Format d'échange (XML, JSON...)
    Réponses: 5
    Dernier message: 20/03/2003, 09h44

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo