format-number

Syntax

format-number(value, format) -> string
format-number(value, format, name) -> number


Argumente
Bezeichnung Datentyp Bedeutung
value number Zahl; falls es sich bei dem Wert nicht um eine Zahl handelt, wird dieser zunächst nach den Regeln der number( ) Funktion umgewandelt
format string Formatierungsregel; falls es sich bei dem Wert nicht um einen String handelt, wird dieser zunächst nach den Regeln der string( ) Funktion umgewandelt
name string Name des Dezimalformats, welches mit <xsl:decimal-format> definiert wurde; falls dieses Attribut nicht angegeben wurde wird die Default-Formatierungsregel (Grundeinstellung) angewandt

format-number( )

konvertiert eine Zahl in einen String. Der gewünschte Output wird mittels der Formatierungsregel und mit dem entsprechendem Dezimalformat bestimmt.


Definition

XSLT Kapitel 12.3


Beispiel

<?xml version="1.0" encoding="ISO-8859-1"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
    
<xsl:output method="html"/>

<xsl:decimal-format name="european" decimal-separator="," grouping-separator="."/>

<xsl:template match="/">
     <HTML>
          <HEAD>
               <TITLE>Funktion: format-number() / Beispiel 01</TITLE>
          </HEAD>
          <BODY>
               <xsl:apply-templates select="shop"/>
          </BODY>
     </HTML>
</xsl:template>

<xsl:template match="shop">
     <TABLE BORDER="1">
          <TR>
               <TH WIDTH="150">Abteilung:</TH>
               <TH WIDTH="100">Artikel:</TH>
               <TH WIDTH="100">Preis:</TH>
          </TR>
          <xsl:apply-templates select="order/product"/>
     </TABLE>
</xsl:template>

<xsl:template match="product">
     <TR>
          <TD><xsl:value-of select="@department"/></TD>
          <TD><xsl:value-of select="name"/></TD>
          <TD ALIGN="RIGHT">
               <xsl:value-of select="format-number(price, '#.##0,0', 'european')"/>
               <xsl:text> </xsl:text>
               <xsl:value-of select="currency"/>
          </TD>
     </TR>
</xsl:template>

</xsl:stylesheet>


weitere Beispiele für unterschiedliche Formatierungsregeln
<xsl:decimal-format name="european" decimal-separator="," grouping-separator="."/>
Zahl Formatierungsregel Output
1234.5 #.##0,00 1.234,50
123.456 #.##0,00 123,46
100000 #.##0,00 1.000.000,00
-59 #.##0,00 -59,00
1 div 0 #.##0,00 Infinity
1234 ###0,0### 1234,0
1234.5 ###0,0### 1234,5
.00035 ###0,0### 0,0004
0.25 #00% 25%
0.736 #00% 74%
1 #00% 100%
-42 #00% -4200%
-3.12 #,00;(#,00) (3,12 )
-3.12 #,00;#,00CR 3,12CR

© 2001 by Timo Schäfer