TLM
J'ai un petit soucis de XSLT :
J'ai des données XML qui se présentent sous la forme d'une liste comme celle-ci :
<DMCLIST>
<DMC></DMC>
<DMC></DMC>
<DMC></DMC>
...
<DMC></DMC>
<DMC></DMC>
<DMC></DMC>
</DMCLIST>
Je voudrais faire afficher ces données sous la forme d'un tableau avec x lignes de 4 colonnes où dans chacune 1 DMC est présent, genre :
<TR>
<TD>DMC</TD>
<TD>DMC</TD>
<TD>DMC</TD>
<TD>DMC</TD>
</TR>
Mon problème principal c'est qu'on n'a pas de fonction for (tout court) mais qu'une for each et donc j'ai pas moyen de parcourir 4 par 4 la liste
J'ai bidouillé differents trucs mais j'ai rien trouvé de correct...
J'ai une solution qui passe sous IE uniquement mais qui n'est pas bien conforme XSL W3C et donc Firefox ne veut pas l'afficher correctement :
<xsl:template match="DMC">
<xsl:if test="position() mod 4=1">
<xsl:text disable-output-escaping="yes"><TR></xsl:text>
</xsl:if>
<TD><xsl:value-of select"."/></TD>
<xsl:if test="position() mod 4=0">
<xsl:text disable-output-escaping="yes"></TR></xsl:text>
</xsl:if>
</xsl:template>
|
Dans cette façon de faire, le problème réside dans le fait que j'ouvre la balise de ligne (TR) sans la refermer avant la fin du xsl:if;
Et bien sur le problème se reproduit à la fermeture de ligne.
J'ai éssayé plusieurs manières après m'être fait refoulé avec cash <TR>.
J'ai par exemple testé <xsl:element name="tr"></xsl:element> mais sans effet (le problème de la balise ouverte mais pas refermée demeure tjrs présent).
Et donc celle-ci, où j'écris < en entité puis TR>, là la page acceptée par IE mais pas par Firefox .
pour votre attention et votre aide.
---------------
Antisocial, tu perds ton sang froid Tu masques ton visage en lisant ton journal Repense a toutes ces années de service Antisocial, bientôt les années de sévices Enfin le temps perdu qu'on ne rattrape plus 4Ñ 7¡ $Ø Ç!ÂL