XSL - XSL Tablas

   
Vista:

XSL Tablas

Publicado por Juanjo interjsr@hotmail.com (1 intervención) el 14/10/2011 15:08:48
Buenas a todos. Estoy con una web xml y salida xsl. El caso en que estoy generando una tabla a partir de unos datos en xml:
<pagina>
<cuerpo>
<nota>
<texto>Un texto cualquiera</texto>
<texto>Un texto cualquiera</texto>
<texto>Un texto cualquiera</texto>
</nota>
<nota>
<texto>Un texto cualquiera</texto>
<texto>Un texto cualquiera</texto>
</nota>
<nota>
<texto>Un texto cualquiera</texto>
</nota>
<nota>
<texto>Un texto cualquiera</texto>
<texto>Un texto cualquiera</texto>
</nota>
<nota>
<texto>Un texto cualquiera</texto>
</nota>

</cuerpo>
</pagina>
La tabla es muy sencilla, concatena en cada celda los texto de nota. Mi problema es que por cada fila sólo tiene que haber 3 celdas, si hubiese más de 3 nodos, claro. Lo más que he logrado, para este caso, es una 1ª fila de 3 celdas, otra 2ª fila de 1celda, y una 3ª de otra celda. Esto es debido a que al crear la fil, (tr), se crear la celda, (td), y se cierra la fila(tr), con lo cual al crear las otras 2 ya pertenecen a otra fila y no a esa como yo creía. Pero es que no se me ocurre otra cosa.
<xsl:for-each select ="pagina/cuerpo/nota">
<xsl:variable name = "lista" select = "position()"/>
<xsl:if test="$lista mod 4 = 0">
<tr>
<td class = "fondo_posit">
<div class = "posit">
<xsl:for-each select ="./texto"> <xsl:value-of select ="."/>
<br/> </xsl:for-each>
</div>
</td>
</tr>
</xsl:if>

<xsl:if test="$lista mod 4 != 0">
<td class = "fondo_posit">
<div class = "posit">
<xsl:for-each select ="./texto">
<xsl:value-of select ="."/>
<br/> </xsl:for-each>
</div>
</td>
</xsl:if>
</xsl:for-each>
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder