| <xsl:template> | |
| 出力テンプレートを定義します。<xsl:template match="x" を開始するテンプレートでは、該当する要素の変換が定義されます。<xsl:template name="x" を開始するテンプレートでは、テンプレートが呼び出されたときに必ず処理される一連の出力要素が定義されます。すべての <xsl:template> 要素には、match 属性または name 属性を定義する必要があります。一般的ではありませんが、match と name の両方が定義された <xsl:template> 要素を作成することもできます。 | |
| カテゴリ | |
|
トップレベル要素 |
|
| 必須の属性 | |
|
なし。 |
|
| 省略可能な属性 | |
|
|
| コンテンツ | |
|
XSLT テンプレート。 |
|
| 指定先 | |
|
<xsl:stylesheet>。<xsl:template> はトップレベル要素であり、<xsl:stylesheet> の子としてのみ指定できます。 |
|
| 定義先 | |
|
XSLT 5.3 節「テンプレート規則の定義」 |
|
| 例 | |
|
入力ドキュメントのすべてのノードを出力ドキュメントにコピーするテンプレートを使用します。ただし、元のドキュメント内のすべての属性は、出力ドキュメントで要素に変換されます。生成された各要素の名前は元の属性の名前となり、各要素のテキストは属性の値となります。スタイルシートは次のとおりです。
<?xml version="1.0"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
<xsl:output method="xml"/>
<xsl:template match="*">
<xsl:element name="{name()}">
<xsl:for-each select="@*">
<xsl:element name="{name()}">
<xsl:value-of select="."/>
</xsl:element>
</xsl:for-each>
<xsl:apply-templates select="*|text()"/>
</xsl:element>
</xsl:template>
</xsl:stylesheet>
スタイルシートには、元のドキュメント内の各ノードを変換する 1 つの <xsl:template> が含まれています。このスタイルシートを使用して次の XML ドキュメントを変換します。
<?xml version="1.0"?>
<report>
<title>Miles Flown in 2001</title>
<month sequence="01">
<miles-flown>12379</miles-flown>
<miles-earned>35215</miles-earned>
</month>
<month sequence="02">
<miles-flown>32857</miles-flown>
<miles-earned>92731</miles-earned>
</month>
<month sequence="03">
<miles-flown>19920</miles-flown>
<miles-earned>76725</miles-earned>
</month>
<month sequence="04">
<miles-flown>18903</miles-flown>
<miles-earned>31781</miles-earned>
</month>
</report>
変換の結果は次のとおりです。
<?xml version="1.0" encoding="UTF-8"?>
<report>
<title>Miles Flown in 2001</title>
<month><sequence>01</sequence>
<miles-flown>12379</miles-flown>
<miles-earned>35215</miles-earned>
</month>
<month><sequence>02</sequence>
<miles-flown>32857</miles-flown>
<miles-earned>92731</miles-earned>
</month>
<month><sequence>03</sequence>
<miles-flown>19920</miles-flown>
<miles-earned>76725</miles-earned>
</month>
<month><sequence>04</sequence>
<miles-flown>18903</miles-flown>
<miles-earned>31781</miles-earned>
</month>
</report>
|
|