XSLT - 変換


ケーススタディ:XSLT を使用して XML を XHTML に変換する方法。

この例の詳細については、次の章で説明します。


正しいスタイルシート宣言

ドキュメントを XSL スタイルシートとして宣言するルート要素は、<xsl:stylesheet> または <xsl:transform> です。

注意:<xsl:stylesheet> と <xsl:transform> は完全に同義であり、どちらも使用できます!

W3C の XSLT 標準によれば、XSL スタイルシートを宣言する正しい方法は次のとおりです:

<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">

または:

<xsl:transform version="1.0"
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 にします:

<?xml version="1.0" encoding="ISO-8859-1"?>
<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")を作成します:

<?xml version="1.0" encoding="ISO-8859-1"?>

<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 version="1.0" encoding="ISO-8859-1"?>
<?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 にします。

上記の例の詳細については、次の章で説明します。


その他の拡張