Foros del Web » Programación para mayores de 30 ;) » Programación General »

Asignacion de variables en XSL

Estas en el tema de Asignacion de variables en XSL en el foro de Programación General en Foros del Web. Hola a tod@s, estoy intentado que cada fila salga de un color utilizando una variable tipo switch, pero no consigo modificar el valor inicial lo ...
  #1 (permalink)  
Antiguo 04/06/2008, 10:51
 
Fecha de Ingreso: mayo-2004
Mensajes: 12
Antigüedad: 20 años
Puntos: 0
Pregunta Asignacion de variables en XSL

Hola a tod@s,

estoy intentado que cada fila salga de un color utilizando una variable tipo switch, pero no consigo modificar el valor inicial lo que tengo es esto:

<xsl:variable name="par">si</xsl:variable>
<xsl:for-each select="persona">
<xsl:sort select="apellidos/apellido1" data-type="text" order="ascending"/>
<xsl:choose>
<xsl:when test="$par='si'">
<tr bgcolor="cian">
<td><b><xsl:value-of select="$par"/></b></td>
<td><xsl:value-of select="apellidos/apellido1"/> <xsl:value-of select="apellidos/apellido2"/>, <xsl:value-of select="nombre"/></td>
<td><xsl:value-of select="municipio"/></td>
<td><xsl:value-of select="provincia"/></td>
</tr>
<xsl:variable name="par">no</xsl:variable>
</xsl:when>
<xsl:when test="$par='no'">
<tr bgcolor="yellow">
<td><b><xsl:value-of select="$par"/></b></td>
<td><xsl:value-of select="apellidos/apellido1"/> <xsl:value-of select="apellidos/apellido2"/>, <xsl:value-of select="nombre"/></td>
<td><xsl:value-of select="municipio"/></td>
<td><xsl:value-of select="provincia"/></td>
</tr>
<xsl:variable name="par">si</xsl:variable>
</xsl:when>
</xsl:choose>
</xsl:for-each>


¿¿¿Porque no funciona???

muchas gracias y un saludo.
  #2 (permalink)  
Antiguo 04/06/2008, 12:07
 
Fecha de Ingreso: marzo-2008
Mensajes: 306
Antigüedad: 16 años, 1 mes
Puntos: 6
Respuesta: Asignacion de variables en XSL

Pues no te funciona porque la variable no se comporta como tal.
Se comporta como una constante de valor "si" que es el valor que le pones fuera del bucle.
La variable con el valor "no" esta dentro de un "when" y no sirve para nada.

Yo suelo hacer algo parecido a lo siguiente:
Código:
<style type="text/css">
.Fila1 { background-color: cyan; height: 20px; }
.Fila0 { background-color: yellow; height: 20px; } 
</style>

<xsl:for-each select="persona">
<xsl:sort select="apellidos/apellido1" data-type="text" order="ascending"/>
<xsl:variable name="l_fila" select="position() mod 2"/>
<tr class="Fila{$l_fila}">
...
</tr>
</xsl:for-each>
__________________
Pop & Rock Bands
Pop Music Stars
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 13:44.