XSLTスタイルシートプログラミング(テンプレートルール)

XML文書を変換するためのルールの記述方法について解説してきます。(XSLTスタイルシートの宣言部分の記述方法はこちらを参照してください。)

変換ルールでは、

①XML文書の「どの部分」を
②「どのように」変換するのか

を、定義します。このようなルールのことをテンプレートルールと言います。

では、もう一度サンプルを見て下さい。

  <xsl:template match="/">
    <html>
    <head>
    <title><xsl:text>ゲーム所持リスト</xsl:text></title>
    </head>
    <h1><xsl:text>ゲーム所持リスト</xsl:text></h1>
    <table>
    <tr>
        <th><xsl:text>ゲームタイトル</xsl:text></th>
        <th><xsl:text>購入日</xsl:text></th>
        <th><xsl:text>購入価格</xsl:text></th>
    </tr>
    <xsl:for-each select="ゲーム所持リスト/ゲーム情報">
    <tr>
        <td><xsl:value-of select="ゲームタイトル" /></td>
        <td><xsl:value-of select="購入日" /></td>
        <td><xsl:value-of select="購入価格" /></td>
    </tr>
    </xsl:for-each>
    </table>
    </html>
  </xsl:template>

XSLTでは、変換元のXML文書を「/」であらわします。このサンプルでは、

①変換元のXML文書(/)を
②「html」要素に変換する

ことを意味しています。
①の指定をパターン(赤字部分)、②の指定をテンプレート(青字部分)と言います。テンプレートルールはその「パターン」と「テンプレート」で構成されます。

テンプレートルールの構文
<xsl:template match=”パターン”>

  …   ← テンプレート

</xsl:template>

match属性は「そのテンプレートがXML文書のどの要素に対して適用されるのか」を指定します。サンプルでは、<xsl:template>要素のmatch属性が「/」なので、XML文書全体に対して適用されるテンプレートを記述していることになります。

次回は、XSLTスタイルシートのテンプレートの記述部分について解説してきます。