<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> 要素の例と比較してください。 |