Phần tử <xsl:decimal-format> của XSLT

Định nghĩa và cách sử dụng

Phần tử <xsl:decimal-format> xác định các ký tự và dấu hiệu được sử dụng khi chuyển đổi số thành chuỗi thông qua hàm số format-number().

Không phải tất cả các quốc gia đều sử dụng cùng một ký tự để phân隔 phần thập phân và phần nguyên, hoặc để nhóm số. Bằng cách sử dụng phần tử <xsl:decimal-format>, bạn có thể thay đổi ký tự cụ thể thành ký tự khác.

Phần tử này là phần tử cấp cao nhất (top level).

Hàm số format-number() có thể được truy cập thông qua tên (name) của phần tử <xsl:decimal-format>.

cú pháp

<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"/>

Thuộc tính

Thuộc tính Giá trị Mô tả
name name Tùy chọn. Định nghĩa tên cho định dạng này.
decimal-separator char Tùy chọn. Định nghĩa ký tự phân cách điểm số. Mặc định là ".".
grouping-separator char Tùy chọn. Định nghĩa ký tự phân cách số ngàn. Mặc định là ",".
infinity string Tùy chọn. Định nghĩa chuỗi biểu thị vô cùng. Mặc định là "Infinity".
minus-sign char Tùy chọn. Định nghĩa ký tự biểu thị giá trị âm. Mặc định là "-".
NaN string Tùy chọn. Định nghĩa chuỗi được sử dụng khi giá trị không phải là số. Mặc định là "NaN".
percent char Tùy chọn. Định nghĩa ký tự dấu phần trăm. Mặc định là "%".
per-mille char Tùy chọn. Định nghĩa ký tự dấu chấm trăm. Mặc định là "‰".
zero-digit char Tùy chọn. Định nghĩa ký tự số 0. Mặc định là "0".
digit char Tùy chọn. Định nghĩa ký tự, ký tự này được sử dụng để chỉ ra nơi cần sử dụng số. Mặc định là #.
pattern-separator char. Tùy chọn. Định nghĩa ký tự, ký tự này được sử dụng để phân tách các mẫu định dạng. Mặc định là ";".

Mô hình

Ví dụ 1

Dưới đây là ví dụ minh họa cách định dạng thành tiền tệ châu Âu (xin lưu ý rằng tham số thứ ba của hàm format-number() tham chiếu đến tên của phần tử <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>

Kết quả:

26.825,80