conditional selection of decimal-format in xslt

Posted by Jose L Martinez-Avial on Stack Overflow See other posts from Stack Overflow or by Jose L Martinez-Avial
Published on 2010-03-12T23:01:57Z Indexed on 2010/03/12 23:07 UTC
Read the original article Hit count: 322

Filed under:
|

Hi all, I'm trying to modify the decimal-format of a stylesheet based on certain information of an XML. More exaclty, I've a XML like this

<?xml version="1.0" encoding="ISO-8859-1"?>
<REPORT>
   <LANGUAGE>2</LANGUAGE>
   <MYVALUE>123456.78</MYVALUE>
</REPORT>

I'm trying to define the decimal format as european if the language is 2, and default otherwse. So I've created the following template

<xsl:template match="REPORT">
     <xsl:if test="$language=2">
          <xsl:decimal-format decimal-separator=',' grouping-separator='.' />
     </xsl:if>
     <xsl:value-of select ="format-number(MYVALUE,'###.###,00')"/>
</xsl:template>

So it shows the number in european format or in standard format. But I'm getting the following error

xsl:decimal-format is not allowed in this position in the stylesheet!

If I try to put the decimal-format outside the template, then I get the message that the xsl:if is not allowed in this position in the sthylsheet. How can I change the decimal-format based in the XML?

Thanks Jose

© Stack Overflow or respective owner

Related posts about decimal-format

Related posts about xsl