| <xsl:copy> | |
| 結果ツリーの要素の浅いコピーを作成します。この要素は、現在のノードとその名前空間ノードのみをコピーします。現在のノードの子とその属性はコピーされません。 | |
| カテゴリ | |
|
命令 |
|
| 必須の属性 | |
|
なし。 |
|
| 省略可能な属性 | |
|
|
| コンテンツ | |
|
XSLT テンプレート。 |
|
| 指定先 | |
|
<xsl:copy> はテンプレート内に指定します。 |
|
| 定義先 | |
|
XSLT 7.5 節「Copying」 |
|
| 例 | |
|
結果ツリーに要素をコピーする例を使用して、<xsl:copy> について示します。ソースドキュメントの属性ノードを処理することを明示的に要求していないので、結果ツリーに属性は含まれません。スタイルシートは次のとおりです。
<?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:copy>
<xsl:apply-templates/>
</xsl:copy>
</xsl:template>
</xsl:stylesheet>
次の 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>
<miles-flown>12379</miles-flown>
<miles-earned>35215</miles-earned>
</month>
<month>
<miles-flown>32857</miles-flown>
<miles-earned>92731</miles-earned>
</month>
<month>
<miles-flown>19920</miles-flown>
<miles-earned>76725</miles-earned>
</month>
<month>
<miles-flown>18903</miles-flown>
<miles-earned>31781</miles-earned>
</month>
</report>
<xsl:copy> は浅いコピーを作成します。これにより、<xsl:copy-of> 要素よりも出力を細かく制御できます。ただし、結果ツリーにコピーする子ノードまたは属性ノードを明示的に指定する必要があります。<xsl:apply-templates> 要素は、現在の要素のすべてのテキスト、要素、コメント、および処理命令の子を選択します。この要素がないと、結果ツリーには 1 つの空の <report> 要素のみが含まれます。この方法を <xsl:copy-of> 要素の例と比較してください。 |
|