タイトル
TOP → This Page

XML > XSLT > 数値の出力

数値の整形


数値を整形して出力するには format-number 関数を使う。
その際の出力フォーマットを細かく設定するには xsl:decimal-format を使う。

(書式)
<xsl:decimal-format name="フォーマット名"
                    decimal-separator=""
                    digit=""
                    grouping-separator=""
                    infinity=""
                    minus-sign=""
                    NaN=""
                    pattern-separator=""
/>

属性概要デフォルト値
name フォーマット名  
decimal-separator 小数点記号 .(ピリオド)
digit フォーマット中で使用される数字文字 #
grouping-separator 桁ごとに区切る記号 ,(カンマ)
infinity 無限記号 Infinity
minus-sign マイナス記号 -
NaN Not a Number(数値でない)記号 Nan
percent パーセント記号 %
zero-digit ゼロ 0


(例)
<decimal-format name="format1"
                decimal-separator="."
                grouping-separator=","
/>

で要素 data の値が 123456.7890 の場合の
<xsl:value-of select="format-number(data, '###,###.00')"/>
の結果は 123,456.79 となる(少数第二位までで四捨五入される)

番号の生成


数値を出力するには xsl:number を使う。

(書式)
<xsl:number level="レベル"
            count="XPath 式"
            format="出力形式"
/>

属性概要
level 番号生成のレベル(省略可)
属性値概要
single兄弟関係にあるノード単位で番号生成(デフォルト)
multiple親要素の番号生成を頭に付ける
anycount 属性にマッチした順に番号生成
from 出力対象となる要素や属性を XPath で指定(必須)
format 番号の出力形式を指定(必須)
属性値概要
11,2,3,..,10,11,...
0101,02,03,..,99,100,...
aa,b,c,...aa,ab,...
AA,B,C,...AA,AB,...
ii,ii,iii,vi,v,...
II,II,III,VI,V,...
あ,い,う,...
ア,イ,ウ,...
一,二,三,,四...
壱,弐,参,,四...

全属性を省略した場合は現在の要素が出現する順に番号が振られる。

(例)
XML 文章が
<lesson title="世界一難しいXML入門">
    <chapter title="XML概要">
        <section title="概要"/>
        <section title="歴史"/>
    </chapter>
    <chapter title="XML基礎">
        <section title="XML基礎1"/>
        <section title="XML基礎2"/>
        <section title="DTD"/>
    </chapter>
    <chapter title="XML応用">
        <section title="XPath"/>
        <section title="XSLT"/>
        <section title="XML Schema"/>
        <section title="DOM"/>
    </chapter>
</lesson>
の場合、

<xsl:for-each select="//chapter|//section">
    <xsl:number level="multiple" format="1." count="chapter|section"/>
    <xsl:value-of select="@title"/><br />
</xsl:for-each>
は

1.XML概要
1.1.概要
1.2.歴史
2.XML基礎
2.1.XML基礎1
2.2.XML基礎2
2.3.DTD
3.XML応用
3.1.XPath
3.2.XSLT
3.3.XML Schema
3.4.DOM

を出力


TOP → This Page