Element <xsl:decimal-format> w XSLT

Definicja i zastosowanie

Element <xsl:decimal-format> definiuje znaki i symbole używane podczas konwersji liczby na ciąg znaków za pomocą funkcji format-number().

Nie wszystkie kraje używają tych samych znaków do oddzielania części dziesiętnych i całkowitych, ani do grupowania liczb. Dzięki elementowi <xsl:decimal-format> można zastąpić konkretne znaki innymi symbolami.

Ten element jest elementem szczytowym (top level).

Funkcja format-number() może odnosić się do elementu <xsl:decimal-format> za pomocą nazwy (name).

Gramatyka

<xsl:decimal-format
name="name"
decimal-separator="char" 
grouping-separator="char" 
infinity="string"
minus-sign="char"
NaN="string"
percent="char"
per-mille="char"
zero-digit="char"
digit="char"
pattern-separator="char"/>

Atrybut

Atrybut Wartość Opis
name name Opcjonalne. Określa nazwę dla tego formatu.
decimal-separator char Opcjonalne. Określa znak używany do reprezentacji kropki dziesiętnej. Domyślnie jest ".".
grouping-separator char Opcjonalne. Określa znak używany do reprezentacji tysiąca w separatorze grupowania. Domyślnie jest ",".
infinity string Opcjonalne. Określa ciąg znaków używany do reprezentacji nieskończoności. Domyślnie jest "Infinity".
minus-sign char Opcjonalne. Określa znak używany do reprezentacji ujemnej liczby. Domyślnie jest "-".
NaN string Opcjonalne. Określa ciąg znaków używany, gdy wartość nie jest liczbą. Domyślnie jest "NaN".
percent char Opcjonalne. Określa znak, który jest używany do reprezentacji procenta. Domyślnie jest "%".
per-mille char Opcjonalne. Określa znak, który jest używany do reprezentacji tysięcznika. Domyślnie jest "‰".
zero-digit char Opcjonalne. Określa znak, który jest używany do reprezentacji liczby 0. Domyślnie jest "0".
digit char Opcjonalne. Określa znak, który jest używany do wskazania miejsca, gdzie należy użyć liczby. Domyślnie jest #.
pattern-separator char. Opcjonalne. Określa znak, który jest używany do oddzielania pozytywnego i ujemnego formatu w modelu formatowania. Domyślnie jest ";".

Przykład

Przykład 1

Poniższy przykład pokazuje, jak formatować na europejską walutę (proszę zauważyć, że trzeci parametr funkcji format-number() odnosi się do nazwy elementu <xsl:decimal-format>):

<?xml version="1.0" encoding="ISO-8859-1"?>
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:decimal-format name="euro" decimal-separator="," grouping-separator="."/>
<xsl:template match="/">
<xsl:value-of select="format-number(26825.8, '#.###,00', 'euro')"/>
</xsl:template>
</xsl:stylesheet>

Wyjście:

26.825,80