スポンサーリンク

[XSLT] xsl:copyとxsl:copy-ofの使い方


xsl:copyの使い方

copyはコンテキストノードのみのコピーをする。
copy内に<apply-templates>で指定したテンプレートを呼べばそれもコピーする。

xsl:copy-ofの使い方

copy-ofはselect属性に指定したノード以下すべてをコピーする。

サンプルコード

XML

XSLT

実行結果

解説

copy

実行結果を見ると、xmlにインデントがあるので、それもコピーされて少々見づらくなっている。

copyで実行したほうはこれだけ。カレントノードが<data>要素だからこれしかとっていない。

<xsl:apply-templates select=”name”/>をcopy要素内にて呼び出すと下記にの通りになった。

<name>のテキストノードのみ取得した結果となった。
要素ノードを持ってくるのかと思ったら持ってこなかった。

正直よくわからない。
ちなみにcopy要素を外してみたらapplyだけでも<data>が消えただけで中身は同じ。

結局copyがやってるのは、カレントノードの要素タグ持ってくるだけの機能にみえる。

copy-of

copy-ofのほうは見ての通り<data>以下をすべて持ってきている。
ただインデントも持ってくるので形が少し見づらくなっている。

XSLT
スポンサーリンク
シェアする
trelab