XSL - Condicional para cambiar de color un atributo XSL

 
Vista:

Condicional para cambiar de color un atributo XSL

Publicado por Juan Martínez (1 intervención) el 31/03/2017 12:51:44
Miren, yo quiero que en mi XSL se pueda hacer, que cada vez que mi atributo "disponibilidad" sea --> En Stock, que se muestre de color verde; si es No Disponible, que se muestre de color rojo.


Esto se puede hacer? Agredeceria mucho la ayuda.

Saludos!
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
Imágen de perfil de Alejandro

Estilizar atributo según disponibilidad

Publicado por Alejandro (227 intervenciones) el 07/07/2023 18:33:15
Sí, Juan, es posible aplicar estilos condicionales en XSL para cambiar el color de un elemento según el valor de un atributo. A continuación, te mostraré cómo lograrlo:

1. Agrega estilos CSS en tu archivo XSL para definir los colores que deseas utilizar. Por ejemplo:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
  <xsl:template match="/">
    <xsl:text disable-output-escaping="yes">&lt;style&gt;</xsl:text>
    <xsl:text disable-output-escaping="yes">
      .en-stock {
        color: green;
      }
      .no-disponible {
        color: red;
      }
    </xsl:text>
    <xsl:text disable-output-escaping="yes">&lt;/style&gt;</xsl:text>
 
    <!-- Resto de tu código XSL -->
  </xsl:template>
 
  <!-- Resto de tus templates -->
</xsl:stylesheet>

2. En el lugar donde deseas aplicar el estilo condicional, utiliza el atributo `class` para asignar una clase CSS según el valor del atributo `disponibilidad`. Por ejemplo:

1
2
3
4
5
6
7
8
9
10
<xsl:element name="span">
  <xsl:attribute name="class">
    <xsl:choose>
      <xsl:when test="disponibilidad = 'En Stock'">en-stock</xsl:when>
      <xsl:when test="disponibilidad = 'No Disponible'">no-disponible</xsl:when>
      <xsl:otherwise></xsl:otherwise>
    </xsl:choose>
  </xsl:attribute>
  <xsl:value-of select="disponibilidad"/>
</xsl:element>

En este ejemplo, se crea un elemento `span` con la clase CSS correspondiente según el valor del atributo `disponibilidad`. Puedes cambiar el elemento y los estilos CSS según tus necesidades.

Con esta solución, el texto se mostrará en color verde si la disponibilidad es "En Stock" y en color rojo si es "No Disponible". Asegúrate de ajustar el código XSL según la estructura de tu XML y la ubicación donde deseas aplicar los estilos condicionales.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar