要素ノードをコピーする
このサンプルは、出力されるソースからカレントノードをコピーして、同じ名前のノードを生成するものです。<xsl:copy>テンプレートの内容</xsl:copy>のように記述します。xsl:copy酔うその内容は、生成されるノードの属性や子に適用するテンプレートです。1個のXSLファイルの中で、同じ内容を何度も表示したいとき、<xsl:value-of>要素を使って、同じコードを何回も記述するより、コピーしたほうが手っ取り早いかもしれません。
copy1.xml
copy1.xsl
もし<xsl:for-each select="情報"><div><xsl:copy /></dic></xsl:for-each> のように「情報要素そのもの」をコピーするように書くと、カレントノードの「情報」要素ノードと同じ名前のノード自体が生成・表示されます。
xsl:copy要素では、カレントノードの属性や子は自動的にはコピーされません。仮にXMLファイル中の「住所」要素ノードをカレントノードに指定してxsl:copy要素を使った場合、「住所」の子要素「会社」要素ノードや「氏名」要素の「年齢」属性ノードはコピーされません。
すべてのテキストノード、つまりtext( )に対してコピーするよう記述すると、テキスト部分がすべてコピーされます。
要素ノードをコピーするとき、,xsl:copy use-attribute-sets="属性セットの名前">のように書くと、属性セットの内容もコピーすることができます。
xsl:call-templates要素と組み合わせて使うと、xsl:copy要素でコピーされたノードをテンプレートとして呼び出すこともできます。
<<<戻る