2 problemas con XSL
Publicado por Tate (1 intervención) el 14/02/2008 11:59:38
Quiero hacer un listado a partir de un xml utilizando xsl, hasta aqui todo va muy bien, la cosa se complica puesto que he creado una tabla con tres columnas y tantas filas como contenga el xml. La cuestión radica en el xsl en el cual existe un condicional, mediante el cual cada vez que se repita un valor cambie el fondo de la celda de color, pero no se como conseguirlo lo mas que he alcanzo a sacar es colocar el texto del color que quiero.
Condicional en cuestión:
<td>
<xsl:if test="departamento[.='Publicidad']">
<b><font color="#FF0000"><xsl:value-of select="departamento"/></font></b>
</xsl:if>
</td>
Solo pondo el código del problema en cuestión. En el ejemplo sólo consigo ponerlo en bold y de color rojo (o el color que yo quiera).
Y por último como podría sintetizar el siguiente código, ya que el apartado departamento puede llegar a ser bastante extenso:
<xsl:for-each select="*/listado">
<tr>
<td><div align="center">
<xsl:if test="departamento[.='Publicidad']">
<b><font color="#FF0000"><xsl:value-of select="departamento"/></font></b>
</xsl:if>
<xsl:if test="departamento[.='Producción']">
<b><font color="#FF00FF"><xsl:value-of select="departamento"/></font></b>
</xsl:if>
<xsl:if test="departamento[.='Técnicos']">
<b><font color="#0000FF"><xsl:value-of select="departamento"/></font></b>
</xsl:if>
</div></td>
<td><xsl:value-of select="nombre"/></td>
<td><div align="center"><xsl:value-of select="telefono"/></div></td>
</tr>
</xsl:for-each>
Si me podeis echar una mano os lo agradecería mucho.
Saludos, Tate
Condicional en cuestión:
<td>
<xsl:if test="departamento[.='Publicidad']">
<b><font color="#FF0000"><xsl:value-of select="departamento"/></font></b>
</xsl:if>
</td>
Solo pondo el código del problema en cuestión. En el ejemplo sólo consigo ponerlo en bold y de color rojo (o el color que yo quiera).
Y por último como podría sintetizar el siguiente código, ya que el apartado departamento puede llegar a ser bastante extenso:
<xsl:for-each select="*/listado">
<tr>
<td><div align="center">
<xsl:if test="departamento[.='Publicidad']">
<b><font color="#FF0000"><xsl:value-of select="departamento"/></font></b>
</xsl:if>
<xsl:if test="departamento[.='Producción']">
<b><font color="#FF00FF"><xsl:value-of select="departamento"/></font></b>
</xsl:if>
<xsl:if test="departamento[.='Técnicos']">
<b><font color="#0000FF"><xsl:value-of select="departamento"/></font></b>
</xsl:if>
</div></td>
<td><xsl:value-of select="nombre"/></td>
<td><div align="center"><xsl:value-of select="telefono"/></div></td>
</tr>
</xsl:for-each>
Si me podeis echar una mano os lo agradecería mucho.
Saludos, Tate
Valora esta pregunta


0