<xsl:copy> |
結果ツリーの要素の浅いコピーを作成します。この要素は、現在のノードとその名前空間ノードのみをコピーします。現在のノードの子とその属性はコピーされません。
カテゴリ
命令
必須の属性
なし。
省略可能な属性
use-attribute-sets この要素で使用する属性セットを示します。複数の属性セットを指定する場合は、空白スペース文字を使用して名前を区切ります。詳細については、 < xsl:attribute-set > 要素の説明を参照してください。
コンテンツ
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> 要素の例と比較してください。