XSLT(Extensible Stylesheet Language Transformations)は、XMLデータを他の形式に変換するための強力なツールです。以下に、XSLTの詳細な説明を提供します。
基本概念
- XSLTスタイルシート: XSLTスタイルシートは、XML文書を変換するためのテンプレートを含むXML文書です。スタイルシートは、または要素で始まります。
- テンプレートマッチング: XSLTは、XML文書の特定の部分に対してテンプレートを適用します。テンプレートは、要素で定義され、match属性を使用してXML文書のどの部分に適用するかを指定します。
- XPath: XSLTは、XPath(XML Path Language)を使用してXML文書内の要素や属性を選択します。XPathは、XML文書の構造をナビゲートするための言語です。
主な要素
<xsl:template>
: 特定のパターンに一致するXML要素に適用されるテンプレートを定義します。<xsl:value-of>
: 指定されたXPath式の結果を出力します。<xsl:for-each>
: 指定されたXPath式に一致する各要素に対して処理を繰り返します。<xsl:if>
: 条件が真の場合にのみ処理を実行します。<xsl:choose>
: 複数の条件を評価し、最初に真となる条件の処理を実行します。
例
以下は、シンプルなXML文書をHTMLに変換するXSLTスタイルシートの例です。
<?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>Book List</h2>
<tr bgcolor="#9acd32">
<th>Title</th>
<th>Author</th>
</tr>
<xsl:for-each select="catalog/book">
<tr>
<td><xsl:value-of select="title"/></td>
<td><xsl:value-of select="author"/></td>
</tr>
</xsl:for-each>
</table>
</body>
</html>
</xsl:template>
</xsl:stylesheet>
この例では、catalog要素内のbook要素をループし、それぞれのtitleとauthorをHTMLテーブルに変換しています。