Problème de fermeture de balise <tr>
Bonjour,
Je ne vois pas comment régler le problème suivant. Dans la construction d'un tableau, je dois affiché deux colonnes à partir d'une liste d'éléments contenus dans un fichier XML.
...XML.....
Code:
1 2 3 4 5 6 7 8
|
<elements>
<element>machin 1</element>
<element>machin 2</element>
<element>machin 3</element>
. . .
<element>machin n</element>
</elements> |
Ma version XSL est à juste titre refusée car mon <tr> n'a pas de balise fermante avant le "</xsl:if>". Mais je vous l'écrit pourque vous puissiez comprendre ce que je veux faire. Evidement, je ne sais pas comment faire. Je dois pouvoir passer de 2 à 3,4 ou n colonnes sans trop de changement dans le code.
.....XSL......
Code:
1 2 3 4 5 6 7 8 9 10 11
| <xsl:template match="element">
<xsl:if test="((position()+1) mod 2)=0">
<tr>
</xsl:if>
<td>
<xsl:value-of select="." />
</td>
<xsl:if test="((position()+1) mod 2)=0">
</tr>
</xsl:if>
</xsl:template> |
..... CE QUE JE VEUX ........
Code:
1 2 3 4 5 6
|
machin 1 machin 2
machin 3 machin 4
machin 5 machin 6
. . .
machin n-1 machin n |
Merci d'avance...
Re: Problème de fermeture de balise <tr>
Code:
1 2 3 4 5 6 7 8 9 10 11
| <xsl:template match="element">
<xsl:if test="((position()+1) mod 2)=0">
<xsl:text disable-output-escaping="yes"><tr><xsl:text>
</xsl:if>
<td>
<xsl:value-of select="." />
</td>
<xsl:if test="((position()+1) mod 2)=0">
<xsl:text disable-output-escaping="yes"></tr><xsl:text>
</xsl:if>
</xsl:template> |
Re: Problème de fermeture de balise <tr>
Merci beaucoup mathix :D, c'est exactement ça que je cherchais.
Juste pour info, je m'etais trompé dans l'énnoncé du problème au niveau du 2eme if. voici la correction :
Citation:
Envoyé par mathix
Code:
1 2 3 4 5 6 7 8 9 10 11
| <xsl:template match="element">
<xsl:if test="((position()+1) mod 2)=0">
<xsl:text disable-output-escaping="yes"><tr></xsl:text>
</xsl:if>
<td>
<xsl:value-of select="." />
</td>
<xsl:if test="((position()) mod 2)=0">
<xsl:text disable-output-escaping="yes"></tr></xsl:text>
</xsl:if>
</xsl:template> |
merci encore ...