番号付け処理 <xsl:number>

・出現順に番号を付加する。

format属性で番号の表示形式を指定
  値
    "a"は小文字アルファベット
    "A"は大文字アルファベット

  値に区切り記号を含めることができる。
   (例)<xsl:number format="{A}"/>
    *{<xsl:number format="A"/>}としても同じこと。

★ヒント
・前後に記号などを付ければ見栄えを変ええる。
  (例)(<xsl:number/>)  ・・・ (1)のように

[サンプルルXML文書を表示](下のフレームに)

XMLソース

<?xml version="1.0" encoding="Shift_JIS" ?>
<?xml-stylesheet type="text/xsl" href="number01.xsl"?>
<root>
<title>KodayanHPのContents</title>
<list1>
<main>大阪日本橋データ</main>
<sub1>日本橋Map</sub1>
<sub1>PCショップ名一覧</sub1>
<sub1>ハード,ソフト価格比較</sub1>
<sub1>日本橋関連リンク集</sub1>
</list1>
<list2>
<main>Webプログラミング</main>
<sub2>CSSとDynamicHTML</sub2>
<sub2>PerでCGI</sub2>
<sub2>XML</sub2>
<sub2>Java Applet</sub2>
<sub2>Java Script</sub2>
<sub2>VB Script</sub2>
</list2>
<list3>
<main>その他</main>
<sub3>お気に入りリンク集</sub3>
<sub3>お知らせ</sub3>
<sub3>HPの履歴</sub3>
<sub3>掲示板</sub3>
<sub3>LAN構築顛末記</sub3>
</list3>
<end>以上です(03/10/20)</end>
</root>

XSLソース

<?xml version="1.0" encoding="Shift_Jis"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="html" encoding="Shift_JIS"/>
<xsl:template match="/">
<center><H3><xsl:value-of select="root/title"/></H3></center>
<xsl:apply-templates select="root/list1"/>
<HR/>
<xsl:apply-templates select="root/list2"/>
<HR/>
<xsl:apply-templates select="root/list3"/>
</xsl:template>
<!--基本的な形式-->
<xsl:template match="list1">
<H4 style="color:red"><xsl:value-of select="main"/></H4>
<xsl:apply-templates select="sub1" />
</xsl:template>
<xsl:template match="sub1">
<xsl:number/><xsl:apply-templates /><BR/>
</xsl:template>
<!--format属性で表示形式をアルファベット小文字にし,()で囲う-->
<xsl:template match="list2">
<H4 style="color:red"><xsl:value-of select="main"/></H4>
<xsl:apply-templates select="sub2" />
</xsl:template>
<xsl:template match="sub2">
(<xsl:number format="a"/>)<xsl:apply-templates /><BR/>
</xsl:template>
<!--format属性の値に記号を含めた例-->
<xsl:template match="list3">
<H4 style="color:red"><xsl:value-of select="main"/></H4>
<xsl:apply-templates select="sub3" />
</xsl:template>
<xsl:template match="sub3">
<xsl:number format="<A:>"/>・・・<xsl:apply-templates /><BR/>
</xsl:template>
</xsl:stylesheet>

end(03/10/20)