<xsl:decimal-format> の例

この例では、<xsl:decimal-format> 要素を使って、数値の書式を設定する方法を示します。

XML ファイル (root.xml)

このファイルも XSLT ファイルも Internet Explorer で表示できます。XSLT ファイルは自身を呼び出します。

<?xml version="1.0"?>

<?xml-stylesheet type="text/xsl" href="decimalformat.xsl" ?>

<root/>

XSLT ファイル (decimalformat.xsl)

<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="decimalformat.xsl"?>
<xsl:stylesheet version="1.0"
      xmlns:xsl="http://www.w3.org/1999/XSL/Transform" >

<xsl:output method="html"/>
<xsl:decimal-format name="us" decimal-separator='.' grouping-separator=',' />
<xsl:decimal-format name="european" decimal-separator=',' grouping-separator='.' />
<xsl:decimal-format name="example" decimal-separator="." grouping-separator=","
   infinity="INFINITY" minus-sign="-" NaN="Not a Number" percent="%"
   per-mille="m" zero-digit="0" digit="#" pattern-separator=";" /> 

<xsl:template match="/">
<HTML><BODY>
<table border="1" cellpadding="2" cellspacing="0">
<tr align="center">
   <td><b>Data</b></td>
   <td><b>Default</b></td>
   <td><b>European</b></td>
   <td><b>US</b></td>
   <td><b>Example</b></td>
</tr>
<tr align="right">
   <td>24535.2</td>
   <td><xsl:value-of select="format-number(24535.2, '###,###.00')"/></td>
   <td><xsl:value-of select="format-number(24535.2, '###.###,00', 'european')"/></td>
   <td><xsl:value-of select="format-number(24535.2, '###,###.00', 'us')"/></td>
   <td><xsl:value-of select="format-number(24535.2, '###,###.00', 'example')"/></td>
</tr>
<tr align="right">
   <td>-123.45</td>
   <td><xsl:value-of select="format-number(-123.45, '###,###.00')"/></td>
   <td><xsl:value-of select="format-number(-123.45, '###.###,00', 'european')"/></td>
   <td><xsl:value-of select="format-number(-123.45, '###,###.00', 'us')"/></td>
   <td><xsl:value-of select="format-number(-123.45, '###,###.00', 'example')"/></td>
</tr>
<tr align="right">
   <td>-123.45</td>
   <td><xsl:value-of select="format-number(-123.45, '###,###.00;(###,###.00)')"/></td>
   <td><xsl:value-of select="format-number(-123.45, '###.###,00;(###.###,00)', 'european')"/></td>
   <td><xsl:value-of select="format-number(-123.45, '###,###.00;(###,###.00)', 'us')"/></td>
   <td><xsl:value-of select="format-number(-123.45, '###,###.00;(###,###.00)', 'example')"/></td>
</tr>
<tr align="right">
   <td>193 div 200</td>
   <td><xsl:value-of select="format-number(193 div 200, '###.#%')"/></td>
   <td><xsl:value-of select="format-number(193 div 200, '###,#%', 'european')"/></td>
   <td><xsl:value-of select="format-number(193 div 200, '###.#%', 'us')"/></td>
   <td><xsl:value-of select="format-number(193 div 200, '###.#%', 'example')"/></td>
</tr>
<tr align="right">
   <td>193 div 200</td>
   <td><xsl:value-of select="format-number(193 div 200, '###.#&#x2030;')"/></td>
   <td><xsl:value-of select="format-number(193 div 200, '###,#&#x2030;', 'european')"/></td>
   <td><xsl:value-of select="format-number(193 div 200, '###.#&#x2030;', 'us')"/></td>
   <td><xsl:value-of select="format-number(193 div 200, '###.#m', 'example')"/></td>
</tr>
<tr align="right">
   <td>1 div 0</td>
   <td><xsl:value-of select="format-number(1 div 0, '###,###.00')"/></td>
   <td><xsl:value-of select="format-number(1 div 0, '###.###,00', 'european')"/></td>
   <td><xsl:value-of select="format-number(1 div 0, '###,###.00', 'us')"/></td>
   <td><xsl:value-of select="format-number(1 div 0, '###,###.00', 'example')"/></td>
</tr>
<tr align="right">
   <td>a div 0</td>
   <td><xsl:value-of select="format-number(a div 0, '###,###.00')"/></td>
   <td><xsl:value-of select="format-number(a div 0, '###.###,00', 'european')"/></td>
   <td><xsl:value-of select="format-number(a div 0, '###,###.00', 'us')"/></td>
   <td><xsl:value-of select="format-number(a div 0, '###,###.00', 'example')"/></td>
</tr>
</table>

</BODY></HTML>
</xsl:template>

</xsl:stylesheet>

出力

これは書式付き出力です。

書式付き出力

プロセッサの出力ストリームの一部を次に示します。

<HTML><BODY>

<table border="1" cellpadding="2" cellspacing="0">

<tr align="center">

<td><b>Data</b></td>

<td><b>Default</b></td>

<td><b>European</b></td>

<td><b>US</b></td>

<td><b>Example</b></td>

</tr>

<tr align="right">

<td>24535.2</td>

<td>24,535.20</td>

<td>24.535,20</td>

<td>24,535.20</td>

<td>24,535.20</td>

</tr>

<tr align="right">

<td>1 div 0</td>

<td>Infinity</td>

<td>Infinity</td>

<td>Infinity</td>

<td>INFINITY</td>

</tr>

</table>

</BODY></HTML>

参照

リファレンス

format-number 関数