Voici une solution
<xsl:template match="mon_noeud[position() mod 4 = 0 or position()=1]">
<xsl:variable name="p" select="position()"/>
<tr>
<td><xsl:value-of select="." /></td>
<td><xsl:value-of select="../mon_noeud[$p+1]" /></td>
<td><xsl:value-of select="../mon_noeud[$p+2]" /></td>
<td><xsl:value-of select="../mon_noeud[$p+3]" /></td>
</tr>
</xsl:template>
<xsl:template match="n"/>
Il y a surement mieux... mais c'est les vacances !!!
bB
Selon ikonea aka John <john@ikonea.com>:
> > Bonjour,
> >
> > Voici le code utilisé en supposant que le nombre de noeud soit
> > toujours un multiple de 4 (je gérerai les autres cas aprés):
> >
> > <table>
> > <tbody>
> > <xsl:for-each select="mon_noeud">
> > <xsl:if test="position() mod 4 = 0">
> > <tr>
> > </xsl:if>
> > <td><xsl:value-of select="." /></td>
> > <xsl:if test="position() mod 4 = 0">
> > </tr>
> > </xsl:if>
> > </xsl:for-each>
> > </tbody>
> > </table>
> >
> > Ceci provoque une erreur : la balise de fin </xsl:if> ne correspond
>
> > pas à la balise de début <tr> ce que je comprend puisqu'on a des
> > balises à cheval et du coup le résultat n'est pas (risque de ne pas
>
> > être) conforme xml.
> >
> > Avez-vous une autre solution pour construire un tableau de n
> colonnes
> > (n défini) ?
> >
> > Merci
> >
> > John
>
********************************************
Ce message électronique est confidentiel. Il peut contenir des
informations protégées par le secret professionnel, le secret de
fabrication ou autres règles légales. Si vous recevez ce message par
erreur, il vous est interdit de le reproduire ou de le distribuer en
tout ou partie, ou de le divulguer de quelque manière que ce soit à
quelque personne que ce soit. Nous vous prions de bien vouloir en
informer Atos Origin, par téléphone ou par retour d'e-mail puis de
détruire le message et toutes copies de votre système informatique.
Le contenu de ce message ne reflète pas nécessairement ni les opinions
d'Atos Origin ni celles des membres de son groupe. Bien que l'émetteur
de ce message ait fait tout son possible pour maintenir son système
informatique sans virus, il ne peut garantir que cette transmission ne
comporte aucun virus et il ne pourra être tenu pour responsable de
quelque dommage que ce soit résultant de la transmission d'un virus.
********************************************
This electronic transmission is confidential. It may contain information
that is covered by legal professional privilege, work product immunity
or other legal rules. If you have received this transmission in error,
you must not copy or distribute this message or any part of it or
otherwise disclose its contents to anyone. Please notify Atos Origin by
phone or return E-mail, and then delete this transmission and any copies
of it from your computer system. The views expressed in this electronic
transmission do not necessarily reflect those of Atos Origin or any
member of its group. Although the sender endeavours to maintain a
computer virus free network, the sender does not warrant that this
transmission is virus free and will not be liable for any damages
resulting from any virus transmitted.
********************************************
--
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)
Received on Fri Dec 31 11:09:00 2004