XSLT - 変換
ケーススタディ:XSLT を使用して XML を XHTML に変換する方法。
この例の詳細については、次の章で説明します。
正しいスタイルシート宣言
ドキュメントを XSL スタイルシートとして宣言するルート要素は、<xsl:stylesheet> または <xsl:transform> です。
注意:<xsl:stylesheet> と <xsl:transform> は完全に同義であり、どちらも使用できます!
W3C の XSLT 標準によれば、XSL スタイルシートを宣言する正しい方法は次のとおりです:
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
または:
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
XSLT の要素、属性、および特性にアクセスするには、ドキュメントの先頭で XSLT 名前空間を宣言する必要があります。
xmlns:xsl="http://www.w3.org/1999/XSL/Transform" は公式の W3C XSLT 名前空間を指します。この名前空間を使用する場合は、属性 version="1.0" を含めなければなりません。
元の XML ドキュメントから始める
ここで、次の XML ドキュメント("cdcatalog.xml")を変換してXHTML にします:
<catalog>
<cd>
<title>Empire Burlesque</title>
<artist>Bob Dylan</artist>
<country>USA</country>
<company>Columbia</company>
<price>10.90</price>
<year>1985</year>
</cd>
.
.
</catalog>
Firefox と Internet Explorer で XML ファイルを表示する:XML ファイルを開くと(通常はリンクをクリックして)、XML ドキュメントは色分けされたコード形式でルート要素と子要素を表示します。要素の左側にあるプラス記号(+)またはマイナス記号(-)をクリックすると、要素の構造を展開または折りたたむことができます。元の XML ソースファイル(プラス記号とマイナス記号なし)を表示するには、ブラウザのメニューで「ページのソースを表示」または「ソースを表示」を選択してください。
Netscape 6 で XML ファイルを表示する:XML ファイルを開き、XML ファイル内で右クリックして、「ページのソースを表示」を選択します。XML ドキュメントは色分けされたコード形式でルート要素と子要素を表示します。
Opera 7 で XML ファイルを表示する:XML ファイルを開き、XML ファイル内で右クリックして、「フレーム」/「ソースを表示」を選択します。XML ドキュメントはプレーンテキストとして表示されます。
XSL スタイルシートを作成する
次に、変換テンプレートを含む XSL スタイルシート("cdcatalog.xsl")を作成します:
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="/">
<html>
<body>
<h2>My CD Collection</h2>
<table border="1">
<tr bgcolor="#9acd32">
<th>Title</th>
<th>Artist</th>
</tr>
<xsl:for-each select="catalog/cd">
<tr>
<td><xsl:value-of select="title"/></td>
<td><xsl:value-of select="artist"/></td>
</tr>
</xsl:for-each>
</table>
</body>
</html>
</xsl:template>
</xsl:stylesheet>
XSL スタイルシートを XML ドキュメントにリンクする
XML ドキュメント("cdcatalog.xml")に XSL スタイルシートの参照を追加します:
<?xml-stylesheet type="text/xsl" href="cdcatalog.xsl.html"?>
<catalog>
<cd>
<title>Empire Burlesque</title>
<artist>Bob Dylan</artist>
<country>USA</country>
<company>Columbia</company>
<price>10.90</price>
<year>1985</year>
</cd>
.
.
</catalog>
お使いのブラウザが XSLT に対応している場合、XML を変換してXHTML にします。
上記の例の詳細については、次の章で説明します。
その他の拡張