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 | 番号生成のレベル(省略可)
|
||||||||||||||||||||||
from | 出力対象となる要素や属性を XPath で指定(必須) | ||||||||||||||||||||||
format | 番号の出力形式を指定(必須)
|
全属性を省略した場合は現在の要素が出現する順に番号が振られる。
(例) 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 を出力 |