عنصر <xsl:decimal-format> در XSLT

تعریف و استفاده

عنصر <xsl:decimal-format> تعریف می‌کند که کدام کاراکترها و علامت‌ها باید برای تبدیل اعداد به رشته‌ها در حالت استفاده از تابع format-number() انتخاب شوند.

همه‌ی کشورها از کاراکترهای یکسان برای جدا کردن بخش‌های اعشاری و کامل عدد یا گروه‌بندی اعداد استفاده نمی‌کنند. از طریق عنصر <xsl:decimal-format> می‌توانید به جای کاراکترهای خاص از نمادهای دیگر استفاده کنید.

این عنصر یک عنصر سطح بالا (top level) است.

توابع format-number() می‌توانند با استفاده از نام (name) به عناصر <xsl:decimal-format> اشاره کنند.

نحوه‌ی نوشتن

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

ویژگی‌ها

ویژگی‌ها مقادیر توضیحات
name name اختیاری. نامی برای این فرمت تعیین می‌کند.
decimal-separator char اختیاری. کاراکتر تعیین شده برای نشان دادن نقطه اعشار. پیش‌فرض "." است.
grouping-separator char اختیاری. کاراکتر تعیین شده برای جدا کردن گروه‌های عددی. پیش‌فرض "," است.
infinity string اختیاری. رشته‌ای که برای نشان دادن بی‌نهایت استفاده می‌شود. پیش‌فرض "Infinity" است.
minus-sign char اختیاری. کاراکتر تعیین شده برای نشان دادن عدد منفی. پیش‌فرض "-" است.
NaN string اختیاری. رشته‌ای که در صورت عدم عدد بودن استفاده می‌شود. پیش‌فرض "NaN" است.
percent char اختیاری. کاراکتر تعیین شده برای علامت درصد. پیش‌فرض "%" است.
per-mille char اختیاری. کاراکتر تعیین شده برای علامت هزاره. پیش‌فرض "‰" است.
zero-digit char اختیاری. کاراکتر تعیین شده برای عدد صفر. پیش‌فرض "0" است.
digit char اختیاری. کاراکتر تعیین شده، کاراکتری است که برای نشان دادن مکان‌هایی که باید از عدد استفاده شود استفاده می‌شود. پیش‌فرض # است.
pattern-separator char. اختیاری. کاراکتر تعیین شده، کاراکتری است که برای جدا کردن مدل‌های مثبت و منفی استفاده می‌شود. پیش‌فرض ";" است.

مثال

مثال 1

مثال زیر نشان می‌دهد که چگونه می‌توان آن را به پول اروپایی فرمت کرد (لطفاً توجه داشته باشید که پارامتر سوم تابع format-number() به نام عناصر <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>

خروجی:

26.825,80