サンプルで覚えるXSLTプログラミング

8.その他のXSLTエレメント

最後に、これまでの4分類に入らなかったタグについて紹介します。


 他のXSLファイルの読み込み
 <xsl:import>、<xsl:include>

“href”で指定されたXSLファイルを読み込みます。

属性名 属性値 機能
href URI 取り入れるスタイルシートのURIを記入します。

スタイルシート「prefectures9.xsl」では、<xsl:import>を使って別のスタイルシート「prefectures10.xsl」を呼び出していることに注目してください。

prefectures9.xsl(別のスタイルシートを呼び出す)

<?xml version="1.0" encoding="Shift_JIS"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
  <xsl:import href="prefectures10.xsl"/>
  <xsl:output method="html" encoding="Shift_JIS"/>


  <xsl:template match="/prefectures">
    <HTML>
      <BODY>
        <xsl:apply-templates select="prefecture"/>
      </BODY>
    </HTML>
  </xsl:template>


</xsl:stylesheet>

prefectures10.xsl(呼び出されるスタイルシート)

<?xml version="1.0" encoding="Shift_JIS"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
  <xsl:template match="prefecture">
    <xsl:value-of select="name"/><br/>
  </xsl:template>
</xsl:stylesheet>


 このスタイルシートも「prefectures1.xsl」と同様の結果をもたらします。ここで注意することは、<xsl:import>および<xsl:include>を<xsl:stylesheet>のすぐ下にもってくることです。またこれらには、兄エレメントがないようにしてください(<xsl:import>および<xsl:include>は除く)。 <xsl:import>と<xsl:include>は、厳密にはスタイルシートの取り込む順序が違いますが、ここでの説明は省略します。


 数の割り当て
 <xsl:number>


属性名 属性値 機能
level single/multiple/any 取り入れるスタイルシートのURIを記入します。
count XPath表現 数える表現を指定します。
from XPath表現 数をリセットするときの表現を指定します。
format 文字列 数のフォーマットを指定します。

<xsl:number>を使用した簡単な例をご覧にいれましょう。

prefectures11.xsl

<?xml version="1.0" encoding="Shift_JIS"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
  <xsl:output method="html" encoding="Shift_JIS"/>


  <xsl:template match="/prefectures">
    <HTML>
      <BODY>
        <xsl:apply-templates select="prefecture"/>
      </BODY>
    </HTML>
  </xsl:template>


  <xsl:template match="prefecture">
    <xsl:number count="prefecture" format="I"/>
    <xsl:value-of select="name"/><br/>
  </xsl:template>

</xsl:stylesheet>

 この出力では都道府県にギリシャ数字がつけ加えられました。prefectureタグを属性“count”で指定し、属性“format”を“I”にしたためです。

出力7

<HTML>
<BODY>I北海道<br>II青森県<br>III岩手県<br>IV宮城県<br>V秋田県<br>VI山形県<br>VII福島県<br>VIII茨城県<br>IX栃木県<br>X群馬県<br>XI埼玉県<br>XII千葉県<br>XIII東京都<br>XIV神奈川県<br>XV新潟県<br>XVI富山県<br>XVII石川県<br>XVIII福井県<br>XIX山梨県<br>XX長野県<br>XXI岐阜県<br>XXII静岡県<br>XXIII愛知県<br>XXIV三重県<br>XXV滋賀県<br>XXVI奈良県<br>XXVII和歌山県<br>XXVIII京都府<br>XXIX大阪府<br>XXX兵庫県<br>XXXI岡山県<br>XXXII鳥取県<br>XXXIII島根県<br>XXXIV広島県<br>XXXV山口県<br>XXXVI徳島県<br>XXXVII香川県<br>XXXVIII愛媛県<br>XXXIX高知県<br>XL福岡県<br>XLI佐賀県<br>XLII長崎県<br>XLIII大分県<br>XLIV熊本県<br>XLV宮崎県<br>XLVI鹿児島県<br>XLVII沖縄県<br>
</BODY>
</HTML>

 これでおもなXSLTタグを紹介したことになります。もちろんこのほかにも紹介しきれなかったタグがいくつもありますが、それらの使用法については下記の参照文献をご覧ください。

 次回は処理をより高度なものにする、関数について説明します。

例として示したファイルは下記からダウンロードできます。


Index
サンプルで覚えるXSLTプログラミング
  1. XMLからHTMLへの変換
スタイルシートはどのように解釈されるか
  2. XPathの基礎知識
XML文書をツリー構造で見る
XPathの表記方法
  3. XSLTエレメントの概要
コラム XSLTプロセッサのインストール
  4. テンプレート系XSLTエレメント
テンプレートの定義
該当するテンプレートの適用
指定されたテンプレートの呼び出し
  5. 変数系XSLTエレメント
変数の定義1
変数の定義2
  6. 出力系XSLTエレメント
該当する表現の値を代入
エレメントノードの生成
属性ノードの生成
テキストノードの生成
コメントノードの生成
PI(processing-instruction)の生成
出力方法の指定
  7. フローコントロール系XSLTエレメント
ループ処理
条件分岐
IF文
8. その他のXSLTエレメント
他のXSLファイルの読み込み
数の割り当て
  9.XSLT関数の概要
関数の主な分類
  10. 文字列系関数
文字列の連結
文字列の調査
数字のフォーマッティング
空白の除去
……
  11. 数値計算系関数
切り上げ
表現の数を数える
切り下げ
数値型への変換
四捨五入
加算
  12. ノードに関する関数
  13. bool代数系関数
  14. その他の関数
  15. JavaによるXSLTの拡張
Built-inクラスの呼び出し
カスタムメイドの関数を作る


XML & SOA フォーラム 新着記事
@ITメールマガジン 新着情報やスタッフのコラムがメールで届きます(無料)

注目のテーマ

HTML5+UX 記事ランキング

本日月間