<xsl:copy-of> 要素

サブツリーおよび結果ツリー フラグメントを結果ツリーに挿入します。

<xsl:copy-of
  select = Expression />

属性

  • select
    必ず指定します。 コピーするノードを識別する XPath 式 (XSLT)。 これらのノードの下のサブツリー全体が結果ツリーにコピーされます。

要素情報

出現回数

無制限

親要素

xsl:attributexsl:commentxsl:copyxsl:elementxsl:fallbackxsl:for-eachxsl:ifxsl:messagexsl:otherwisexsl:paramxsl:processing-instructionxsl:templatexsl:variablexsl:whenxsl:with-param、出力要素

子要素

(子要素はありません)

解説

式の評価の結果が結果ツリー フラグメントである場合は、完全なフラグメントが結果ツリーにコピーされます。 結果がノード セットである場合は、セット内のすべてのノードがドキュメント順で結果ツリーにコピーされます。 要素ノードをコピーすると、その要素ノード自身のほか、属性ノード、名前空間ノード、および要素ノードの子もコピーされます。 ルート ノードは、ルート ノードの子をコピーすることによってコピーされます。 結果がノード セットでも結果ツリー フラグメントでもない場合は、<xsl:value-of> の場合と同様に、結果が文字列に変換された後、結果ツリーに挿入されます。

使用例

このサンプル XSLT ファイルをサンプル XML ファイルに対して実行することで、子要素として <given-name> および <family-name> を含む <person> 要素を検索します。 段落には、現在のノードの最初の <given-name> 子要素 (属性と子要素を含む) が含まれ、その後にスペースを挟んで、現在のノードの最初の <family-name> 子要素 (属性と子要素を含む) が含まれます。

XML ファイル (family.xml)

<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="family.xsl"?>
<family>
  <person>
    <given-name age="10">
      <name>Fred</name>
      <nick-name>Freddy</nick-name>
    </given-name>
    <family-name>Smith</family-name>
  </person>
  <person>
    <given-name age="10">
      <name>Robert</name>
      <nick-name>Bob</nick-name>
    </given-name>
    <family-name>Smith</family-name>
  </person>
</family>

XSLT ファイル (family.xsl)

<?xml version="1.0"?>
<xsl:stylesheet version="1.0"
      xmlns:xsl="http://www.w3.org/1999/XSL/Transform" >

<xsl:template match="person">
  <p>
    <xsl:copy-of select="given-name"/>
    <xsl:text> </xsl:text>
    <xsl:copy-of select="family-name"/>
  </p>
</xsl:template>

</xsl:stylesheet>

出力

これは書式付き出力です。

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>

参照

関連項目

<xsl:value-of> 要素