Ver Mensaje Individual
  #4 (permalink)  
Antiguo 20/07/2004, 00:13
cabral
 
Fecha de Ingreso: abril-2004
Ubicación: Sevilla
Mensajes: 100
Antigüedad: 20 años, 10 meses
Puntos: 0
Para dibujar una tabla con los colores de las filas alternadas no hace falta usar variables, ya que dices que lo haces con un for-each, lo único que tendrías que hacer es preguntar por la posición del nodo que estas viendo, si la posición del nodo es impar, tomas un color, si la posición es par tomas otro, sirva este trozo de código a modo de ejemplo:

<xsl:for-each select="raiz">
<xsl:if test="(position () mod 2) = 0">
<tr>
<td align="left" style="padding-left: 10px;" class="contenidoCampoPUB1" bgcolor="#f8f8f8">
<a class="enlaceTipos">
<xsl:if test="fecha_edicion=true() and fecha_edicion!=''">
<xsl:attribute name="href"><xsl:value-of select="/publicaciones/directorio"/><xsl:value-of select="/publicaciones/llamada"/><xsl:value-of select="numero_edicion"/></xsl:attribute>
<xsl:value-of select="fecha_edicion"/>
</xsl:if>
<xsl:if test="numero_edicion=true() and numero_edicion!=''">
<xsl:attribute name="href"><xsl:value-of select="/publicaciones/directorio"/><xsl:value-of select="/publicaciones/llamada"/><xsl:value-of select="numero_edicion"/></xsl:attribute>
<xsl:if test="fecha_edicion=true() and fecha_edicion!=''"> Nº de Edición: </xsl:if>
<xsl:value-of select="numero_edicion"/>
</xsl:if>
</a>
</td>
</tr>
</xsl:if>
<xsl:if test="(position () mod 2) != 0">
<tr>
<td align="left" style="padding-left: 10px;" class="contenidoCampoPUB1" bgcolor="#f0f0f0">
<a class="enlaceTipos">
<xsl:if test="fecha_edicion=true() and fecha_edicion!=''">
<xsl:attribute name="href"><xsl:value-of select="/publicaciones/directorio"/><xsl:value-of select="/publicaciones/llamada"/><xsl:value-of select="numero_edicion"/></xsl:attribute> <xsl:value-of select="fecha_edicion"/>
</xsl:if>
<xsl:if test="numero_edicion=true() and numero_edicion!=''">
<xsl:attribute name="href"><xsl:value-of select="/publicaciones/directorio"/><xsl:value-of select="/publicaciones/llamada"/><xsl:value-of select="numero_edicion"/></xsl:attribute>
<xsl:if test="fecha_edicion=true() and fecha_edicion!=''"> Nº de Edición: </xsl:if> <xsl:value-of select="numero_edicion"/>
</xsl:if>
</a>
</td>
</tr>
</xsl:if>
</xsl:for-each>


Como puedes observar, cada uno de las filas tiene un color, lo único que miramos es la posición del nodo que estamos recorriendo, como supongo que sabrás el for-each es secuencial y recorrera los nodos según el orden que estén en el xml, simplemente intentaremos aprovechar esa situación.


Espero haberte ayudado un poco más, si sigues teniendo alguna duda... no dudes en comunicarlo.

Un saludo.