Foros del Web » Creando para Internet » HTML »

XSL Tabla

Estas en el tema de XSL Tabla en el foro de HTML en Foros del Web. 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 ...
  #1 (permalink)  
Antiguo 14/10/2011, 07:44
Avatar de interjsr  
Fecha de Ingreso: octubre-2011
Ubicación: Madrid
Mensajes: 81
Antigüedad: 12 años, 6 meses
Puntos: 2
XSL Tabla

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>

Etiquetas: tabla
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 08:59.