Web Artisan Blog - ウェブ アルチザン ブログ

XML:XSLTのnumber:XSLTでHTML出力する際、データに連番を振る方法(ソート順に連番)

XML (18 items)

2004年09月17日

■number要素「xsl:number」
XSLTでXMLデータに連番を振る際には、number要素「xsl:number」タグを使用する。

<記述例>

<xsl:number value="position()" format="1"/>


※value="position()"・・・コンテキスト位置。指定しないとソート結果に連番が振れない
※format="1"・・・連番値のフォーマット。"1"は「1,2,3,・・」の形で振られる。

「xsl:number」要素には他の属性もあるが、ここでは簡単な例に絞る為、割愛。

<スポンサードリンク>
<使用例>
・XMLデータ(data4.xml)

<?xml version="1.0" encoding="EUC-JP" ?>
<?xml-stylesheet type="text/xsl" href="data4.xsl"?>
<test>
<count>3</count>
<count>5</count>
<count>1</count>
<count>4</count>
<count>2</count>
</test>




・XMLデータを編集するXSLT(data4.xsl)

<?xml version="1.0" encoding="Shift_JIS" ?>
<xsl:stylesheet 
 xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
 xmlns="http://www.w3.org/1999/xhtml" version="1.0">
<xsl:output
 method="html" 
 version="1.0" 
 encoding="Shift_JIS" 
 omit-xml-declaration="yes"
 standalone="yes"
 doctype-public="-//W3C//DTD XHTML 1.0 Transitional//EN" 
 doctype-system="http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd" 
 indent="yes" 
 media-type="text/html"/>

<xsl:template match="/">

<!-- HTML出力部 -->
  <html>
  <head>
  <title>Result</title>
  </head>
  <body>

 <xsl:apply-templates />

<!-- HTML出力部 -->
  </body>
  </html>

</xsl:template> 

<xsl:template match="test">
  <xsl:apply-templates select="count">
    <!-- データのソート -->
    <xsl:sort select="." data-type="number" order="descending" />
  </xsl:apply-templates>
</xsl:template> 

<xsl:template match="count">
    <!-- 連番を振る -->
    No.<xsl:number value="position()" format="1"/>=<xsl:value-of select="." /><br />
</xsl:template> 

</xsl:stylesheet>




・生成したHTML

<html>
<head>
<title>Result</title>
</head>
<body>
No.1=5<br />
No.2=4<br />
No.3=3<br />
No.4=2<br />
No.5=1<br />
</body>
</html>




■使用例のダウンロード
ダウンロードし、data4.xmlをブラウザで見る事で確認できます。

>>ダウンロード
※XSLTの動くブラウザでお試し下さい。IEであればIE6以上です。

<スポンサードリンク>
前の記事 次の記事

Comments

コメントは、まだ書かれていません

Add Comments

Trackback

トラックバックはありません

Trackback URL

http://www.res-system.com/weblog/action.php?action=plugin&name=TrackBack&tb_id=275