次の方法で共有


XmlNode.CloneNode(Boolean) メソッド

定義

派生クラスでオーバーライドされると、ノードの複製を作成します。

public:
 abstract System::Xml::XmlNode ^ CloneNode(bool deep);
public abstract System.Xml.XmlNode CloneNode(bool deep);
abstract member CloneNode : bool -> System.Xml.XmlNode
Public MustOverride Function CloneNode (deep As Boolean) As XmlNode

パラメーター

deep
Boolean

true 指定されたノードの下にサブツリーを再帰的に複製する場合。 false ノード自体のみを複製します。

戻り値

複製されたノード。

例外

複製できないノード型でこのメソッドを呼び出します。

次の例は、深いクローンと浅いクローンの違いを示しています。

using System;
using System.IO;
using System.Xml;

public class Sample {

  public static void Main() {

    XmlDocument doc = new XmlDocument();
    doc.LoadXml("<book ISBN='1-861001-57-5'>" +
                "<title>Pride And Prejudice</title>" +
                "<price>19.95</price>" +
                "</book>");

    XmlNode root = doc.FirstChild;

    //Create a deep clone.  The cloned node
    //includes the child nodes.
    XmlNode deep = root.CloneNode(true);
    Console.WriteLine(deep.OuterXml);

    //Create a shallow clone.  The cloned node does not
    //include the child nodes, but does include its attribute.
    XmlNode shallow = root.CloneNode(false);
    Console.WriteLine(shallow.OuterXml);
  }
}
Option Explicit
Option Strict

Imports System.IO
Imports System.Xml

Public Class Sample
    
    Public Shared Sub Main()
        
        Dim doc As New XmlDocument()
        doc.LoadXml("<book ISBN='1-861001-57-5'>" & _
                    "<title>Pride And Prejudice</title>" & _
                    "<price>19.95</price>" & _
                    "</book>")
        
        Dim root As XmlNode = doc.FirstChild
        
        'Create a deep clone.  The cloned node 
        'includes the child nodes.
        Dim deep As XmlNode = root.CloneNode(True)
        Console.WriteLine(deep.OuterXml)
        
        'Create a shallow clone.  The cloned node does not 
        'include the child nodes, but does include its attribute.
        Dim shallow As XmlNode = root.CloneNode(False)
        Console.WriteLine(shallow.OuterXml)
    End Sub
End Class

注釈

このメソッドは、ノードのコピー コンストラクターとして機能します。 重複するノードには親がありません (ParentNodenullを返します)。

次の表では、各 XmlNodeTypeの特定の動作について説明します。

XmlNodeType CloneNode(true) CloneNode(false)
特性 子ノードを含む属性ノードを複製します。 子ノードを含む属性ノードを複製します。
CData データ コンテンツを含む CData ノードを複製します。 データ コンテンツを含む CData ノードを複製します。
コメント テキスト コンテンツを含むコメント ノードを複製します。 テキスト コンテンツを含むコメント ノードを複製します。
ドキュメント 子ノードを含め、ドキュメント ノードを複製します。 ドキュメント ノードを複製します。
DocumentFragment 子ノードを含め、ドキュメント フラグメント ノードを複製します。 ドキュメント フラグメント ノードを複製します。
文書タイプ ドキュメントの種類のノードを複製します。 ドキュメントの種類のノードを複製します。
要素 要素ノード、その属性、およびすべての子ノードを複製します。 既定の属性を含め、要素ノードとその属性を複製します。
エンティティ エンティティ ノードは複製できません。 エンティティ ノードは複製できません。
エンティティリファレンス エンティティ参照ノードを複製します。 置換テキストは含まれません。 エンティティ参照ノードを複製します。 置換テキストは含まれません。
Notation 表記ノードは複製できません。 表記ノードは複製できません。
処理命令 ターゲットとデータを含む処理命令ノードを複製します。 ターゲットとデータを含む処理命令ノードを複製します。
SignificantWhitespace データ値を含む重要な空白ノードを複製します。 データ値を含む重要な空白ノードを複製します。
テキスト データ値を含むテキスト ノードを複製します。 データ値を含むテキスト ノードを複製します。
空白 データ値を含む空白ノードを複製します。 データ値を含む空白ノードを複製します。
XML宣言 データ値を含む XmlDeclaration ノードを複製します。 データ値を含む XmlDeclaration ノードを複製します。
その他すべてのノード タイプ。 これらのノードの種類は複製できません。 これらのノードの種類は複製できません。

適用対象