다음을 통해 공유


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입니다.

반환

XmlNode

복제된 노드입니다.

예외

복제할 수 없는 노드 형식에 이 메서드를 호출하는 경우

예제

다음 예제에서는 심층 클론과 단순 클론 간의 차이를 보여 있습니다.

#using <System.Xml.dll>

using namespace System;
using namespace System::IO;
using namespace System::Xml;
int main()
{
   XmlDocument^ doc = gcnew 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 );
}
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

설명

이 메서드는 노드에 대한 복사 생성자 역할을 합니다. 중복 노드에는 부모(ParentNode 반환 null)가 없습니다.

다음 표에서는 각 XmlNodeType에 대한 특정 동작을 설명합니다.

XmlNodeType CloneNode(true) CloneNode(false)
attribute 자식 노드를 포함하여 특성 노드를 복제합니다. 자식 노드를 포함하여 특성 노드를 복제합니다.
CData 데이터 콘텐츠를 포함하여 CData 노드를 복제합니다. 데이터 콘텐츠를 포함하여 CData 노드를 복제합니다.
의견 텍스트 콘텐츠를 포함하여 주석 노드를 복제합니다. 텍스트 콘텐츠를 포함하여 주석 노드를 복제합니다.
문서 자식 노드를 포함하여 문서 노드를 복제합니다. 문서 노드를 복제합니다.
DocumentFragment 자식 노드를 포함하여 문서 조각 노드를 복제합니다. 문서 조각 노드를 복제합니다.
DocumentType 문서 형식 노드를 복제합니다. 문서 형식 노드를 복제합니다.
요소 요소 노드, 해당 특성 및 모든 자식 노드를 복제합니다. 기본 특성을 포함하여 요소 노드 및 해당 특성을 복제합니다.
엔터티 entity 노드는 복제할 수 없습니다. entity 노드는 복제할 수 없습니다.
EntityReference 엔터티 참조 노드를 복제합니다. 대체 텍스트는 포함되지 않습니다. 엔터티 참조 노드를 복제합니다. 대체 텍스트는 포함되지 않습니다.
Notation notation 노드는 복제할 수 없습니다. notation 노드는 복제할 수 없습니다.
ProcessingInstruction 대상 및 데이터를 포함하여 처리 명령 노드를 복제합니다. 대상 및 데이터를 포함하여 처리 명령 노드를 복제합니다.
SignificantWhitespace 데이터 값을 포함하여 중요한 공백 노드를 복제합니다. 데이터 값을 포함하여 중요한 공백 노드를 복제합니다.
텍스트 데이터 값을 포함하여 텍스트 노드를 복제합니다. 데이터 값을 포함하여 텍스트 노드를 복제합니다.
공백 데이터 값을 포함하여 공백 노드를 복제합니다. 데이터 값을 포함하여 공백 노드를 복제합니다.
XmlDeclaration 데이터 값을 포함하여 XmlDeclaration 노드를 복제합니다. 데이터 값을 포함하여 XmlDeclaration 노드를 복제합니다.
다른 모든 노드 형식입니다. 이러한 노드 형식은 복제할 수 없습니다. 이러한 노드 형식은 복제할 수 없습니다.

적용 대상