Estoy tratando de mostrar información diferente dependiendo de los datos entrantes. Si es un número entero, quiero mostrar solo el número, si es un decimal, quiero usar el patrón 0.00 #. Ya, lo sé, un poco confuso, pero esa es la especificación de desarrollo. :>¿cuál es la forma correcta de probar xs: decimal en XSL?
Tengo el siguiente XSL para esta sección específica, pero no puedo ver a superar el XSL: cuando el mensaje de error de
"esperaba final de la expresión, que se encuentra número 'moldeable'. (SAVG) -> moldeable < - como xs: decimal"
<xsl:choose>
<xsl:when test="number(SAVG) > 0">
<xsl:choose>
<xsl:when test="number(SAVG) castable as xs:decimal">
<xsl:value-of select="format-number(SAVG, '###,###,##0.00#')"/>
</xsl:when>
<xsl:otherwise>
<xsl:value-of select="format-number(SAVG, '###,###,##0.###')"/>
</xsl:otherwise>
</xsl:choose>
</xsl:when>
<xsl:when test="number(SAVG) = 0">
<xsl:text disable-output-escaping="yes">&lt;</xsl:text>1
</xsl:when>
<xsl:otherwise>N/A</xsl:otherwise>
</xsl:choose>
I intentado buscar/hurgando en busca de respuestas y he tratado de "instancia de", he intentado usar xsl: if , etc. pero parece que no puedo s para trabajar. Cualquier ayuda sería muy apreciada.
Gracias.
de:
Sí, estamos utilizando 1.0. Lo siento, soy nuevo en el procesamiento XSL, ¿cómo puedo pegar su XSL y la entrada para generar el html?
Esto es XSLT 2.0. Si está ejecutando esto con el procesador XSLT 1.0, dígalo. –
Buena pregunta (+1). Vea mi respuesta para una solución XSLT 2.0 corta y completa. –
He agregado una solución XSLT 1.0 a mi respuesta. –