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"は、公式のW3CXSLT名前空間を指します。この名前空間を使用する場合は、属性version = "1.0"も含める必要があります。
生のXMLドキュメントから始める
次のXMLドキュメント( "cdcatalog.xml")をXHTMLに変換します。
<?xml version="1.0" encoding="UTF-8"?>
<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>
IE、Chrome、Firefox、Safari、およびOperaでのXMLファイルの表示:XMLファイルを開きます(下のリンクをクリックします)-XMLドキュメントは、色分けされたルート要素と子要素で表示されます(Safariを除く)。多くの場合、要素の左側にプラス(+)またはマイナス記号(-)があり、クリックして要素構造を展開または折りたたむことができます。ヒント:生のXMLソースを表示するには、XMLファイルを右クリックして[ソースの表示]を選択します。
XSLスタイルシートを作成する
次に、変換テンプレートを使用してXSLスタイルシート( "cdcatalog.xsl")を作成します。
<?xml version="1.0" encoding="UTF-8"?>
<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ドキュメントにリンクする
XSLスタイルシート参照をXMLドキュメント( "cdcatalog.xml")に追加します。
<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" href="cdcatalog.xsl"?>
<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にうまく変換できます。
上記の例の詳細については、次の章で説明します。