Cita:
Iniciado por subsoho Quiero poner una condición con <xsl:if pero el valor que me llega es texto, al intentar convertirlo a number no me funciona con lo que la condición no se cumple.
El tema es que el valor del atributo que quiero poner en el if es un texto y no tengo manera de pasarlo a number para el if.
Aquí el código xsl:
<xsl:decimal-format name="euro"decimal-separator="," grouping-separator="."/>
<xsl:variable name="variacion" select="substring-before(html:td[2], '%')" />
<xsl:variable name="var_num" select="format-number($variacion, '##0.00', 'euro')" />
<xsl:if test="$var_num > 1">
.....
html:td[2] tiene valores como "-0,09%", "-1,77%", etc.. El programa primero elimina el porcentaje con substring-before y luego intenta convertir a number.
var_num simpre es NAN porque no puede hacer la conversión de texto a numero, y en consecuencia, la condición de que sea mayor que 1 nunca se cumple.
Ayuda necesito, gracias.
Era por la ',' que separa la parte entera de la decimal, lo he sustituido por un punto de la siguiente manera :
<xsl:variable name="variacion1" select="substring-before(html:td[2],',')" />
<xsl:variable name="variacion2" select="substring-after(substring-before(html:td[2], '%'),',')" />
<xsl:variable name="variacion" select="concat($variacion1,'.',$variacion2)" />