7. 出力とスタイルシートの結合
XSLT 7章 出力とスタイルシートの結合
この章においては、以下の XML 文書を用いて変数とパラメータについてみていきたいと思います。
7.1 出力<xsl:output method = "xml" | "html" | "text" | qname-but-not-ncname version = nmtoken encoding = string omit-xml-declaration = "yes" | "no" standalone = "yes" | "no" doctype-public = string doctype-system = string cdata-section-elements = qnames indent = "yes" | "no" media-type = string /> トップレベル要素 xsl:output を使用することにより、結果ツリーの出力方法を指定することができます。xsl:output 要素は、結果ツリーを生成することはありません。また、属性はすべて任意指定となります。
2.3 テンプレートルールの適用でも少しふれましたが、method 属性のデフォルトは結果ツリーの内容によって異なります。
以上の条件を満たすと、デフォルトの出力メソッドは html となり、それ以外の場合は xml となります。出力メソッドが xml の場合は XML 宣言が出力されますが、html の場合は html タグが出力されるわけではありませんので、記述する必要があります。また、出力メソッドが html のとき、 encoding 属性が指定されていて、かつ、結果ツリーに head 要素がある場合、head 要素の開始タグ直後に meta 要素が追加され、キャラクタエンコーディングが指定されます。 <xsl:output method="html"
indent="yes"
encoding="EUC-JP"
media-type="text/html"
doctype-public="-//W3C//DTD HTML 4.01 Transitional//EN"/>
<xsl:template match="/">
<html>
<head><title>html method</title></head>
<xsl:apply-templates select="people/person"/>
</html>
</xsl:template>
<xsl:template match="people/person">
<p><xsl:value-of select="."/></p>
</xsl:template>
上記のテンプレートを people.xml に適用すると以下の出力を得られます。 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <META http-equiv="Content-Type" content="text/html; charset=EUC-JP"> <title>html method</title> </head> <p>Kevin Shields</p> <p>Trent Reznor</p> </html> |
![]()
![]()
|