XSLT の基本的な例
この最初の例では、ブラウザーで XSLT 変換を設定する基本を示します。 この例では、記事に関する情報(タイトル、著者の一覧、本文)を含む XML 文書を取り込み、それを人間が読める形式で表示します。
XML 文書 (example.xml) は次の通りです。
<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="example.xsl"?>
<Article>
<Title>My Article</Title>
<Authors>
<Author>Mr. Foo</Author>
<Author>Mr. Bar</Author>
</Authors>
<Body>This is my article text.</Body>
</Article>
この XML ファイルの ?xml-stylesheet
処理命令により、その href
属性で適用する XSLT スタイルシートを指定します。
XSL スタイルシートファイル (example.xsl) は次の通りです。
<?xml version="1.0"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="text"/>
<xsl:template match="/">
Article - <xsl:value-of select="/Article/Title"/>
Authors: <xsl:apply-templates select="/Article/Authors/Author"/>
</xsl:template>
<xsl:template match="Author">
- <xsl:value-of select="." />
</xsl:template>
</xsl:stylesheet>
XSLT スタイルシートは、最終的な出力を生成するためのすべてのテンプレートを含む、xsl:stylesheet
要素で始まります。
この例には 2 つのテンプレートがあります。一つはルートノードに対応し、一つは Author ノードに対応します。
ルートノードが出力する記事のタイトルにテンプレートが一致すると、(apply-templates
を通して) Authors ノードの子の、すべての Author ノードに対応するテンプレートが処理されます。
例を試してみましょう。
-
ファイルシステム上にディレクトリーを作成し、その中に上記の
example.xml
とexample.xsl
を作成します。 -
ファイルのあるディレクトリーでローカルサーバーを起動します。 これにより、あたかもインターネット上でホスティングされているかのように、ディレクトリー内のファイルを閲覧することができます。
警告: ファイルシステムからスタイルシートを読み込むことはオリジン間リクエストであり、既定で許可されないためです。 XML とスタイルシートを同じローカルサーバーでホスティングすることで、同一のオリジンになることが保証されます。
-
ブラウザーから example.xml を開きます。
-
ブラウザーの出力は次のようになります。
Browser Output : Article - My Article Authors: - Mr. Foo - Mr. Bar