サブツリーおよび結果ツリー フラグメントを結果ツリーに挿入します。
<xsl:copy-of
select = Expression />
属性
- select
必須。 コピーするノードを識別する XPath 式。 これらのノードの下のサブツリー全体が結果ツリーにコピーされます。
要素情報
出現回数 |
無制限 |
親要素 |
xsl:attribute、xsl:comment、xsl:copy、xsl:element、xsl:fallback、xsl:for-each、xsl:if、xsl:message、xsl:otherwise、xsl:param、xsl:processing-instruction、xsl:template、xsl:variable、xsl:when、xsl:with-param、出力要素 |
子要素 |
(子要素はありません) |
解説
式の評価の結果が結果ツリー フラグメントである場合は、完全なフラグメントが結果ツリーにコピーされます。 結果がノード セットである場合は、セット内のすべてのノードがドキュメント順で結果ツリーにコピーされます。 要素ノードをコピーすると、その要素ノード自身のほか、属性ノード、名前空間ノード、および要素ノードの子もコピーされます。 ルート ノードは、ルート ノードの子をコピーすることによってコピーされます。 結果がノード セットでも結果ツリー フラグメントでもない場合は、<xsl:value-of>
の場合と同様に、結果が文字列に変換された後、結果ツリーに挿入されます。
例
このサンプル XSLT ファイルをサンプル XML ファイルに対して実行することで、子要素として <given-name>
および <family-name>
を含む <person>
要素を検索します。 段落には、現在のノードの最初の <given-name>
子要素 (属性と子要素を含む) が含まれ、その後にスペースを挟んで、現在のノードの最初の <family-name>
子要素 (属性と子要素を含む) が含まれます。
XML ファイル (family.xml)
XSLT ファイル (family.xsl)
出力
これは書式付き出力です。
Fred Freddy Smith
Robert Bob Smith
以下は、プロセッサ出力です (わかりやすくするために改行を追加してあります)。
<?xml version="1.0"?>
<p><given-name age="10">
<name>Fred</name>
<nick-name>Freddy</nick-name>
</given-name>
<family-name>Smith</family-name></p>
<p><given-name age="10">
<name>Robert</name>
<nick-name>Bob</nick-name>
</given-name>
<family-name>Smith</family-name></p>