XmlNode.CloneNode(Boolean) 메서드
정의
중요
일부 정보는 릴리스되기 전에 상당 부분 수정될 수 있는 시험판 제품과 관련이 있습니다. Microsoft는 여기에 제공된 정보에 대해 어떠한 명시적이거나 묵시적인 보증도 하지 않습니다.
파생 클래스에서 재정의되는 경우 노드의 복제본을 만듭니다.
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
설명
이 메서드는 노드에 대한 복사 생성자 역할을 합니다. 중복 노드에는 부모(반환null)가ParentNode 없습니다.
다음 표에서는 각 XmlNodeType에 대한 특정 동작에 대해 설명합니다.
| XmlNodeType | CloneNode(true) | CloneNode(false) |
|---|---|---|
| 특성 | 자식 노드를 포함하여 특성 노드를 복제합니다. | 자식 노드를 포함하여 특성 노드를 복제합니다. |
| CData | 데이터 콘텐츠를 포함하여 CData 노드를 복제합니다. | 데이터 콘텐츠를 포함하여 CData 노드를 복제합니다. |
| 주석 | 텍스트 콘텐츠를 포함하여 주석 노드를 복제합니다. | 텍스트 콘텐츠를 포함하여 주석 노드를 복제합니다. |
| 문서 | 자식 노드를 포함하여 문서 노드를 복제합니다. | 문서 노드를 복제합니다. |
| DocumentFragment | 자식 노드를 포함하여 문서 조각 노드를 복제합니다. | 문서 조각 노드를 복제합니다. |
| 문서 유형 | 문서 형식 노드를 복제합니다. | 문서 형식 노드를 복제합니다. |
| 요소 | 요소 노드, 해당 특성 및 모든 자식 노드를 복제합니다. | 기본 특성을 포함하여 요소 노드 및 해당 특성을 복제합니다. |
| 개체 | 엔터티 노드는 복제할 수 없습니다. | 엔터티 노드는 복제할 수 없습니다. |
| 엔터티 레퍼런스 | 엔터티 참조 노드를 복제합니다. 대체 텍스트는 포함되지 않습니다. | 엔터티 참조 노드를 복제합니다. 대체 텍스트는 포함되지 않습니다. |
| 표기 | 표기법 노드는 복제할 수 없습니다. | 표기법 노드는 복제할 수 없습니다. |
| 처리 명령 | 대상 및 데이터를 포함하여 처리 명령 노드를 복제합니다. | 대상 및 데이터를 포함하여 처리 명령 노드를 복제합니다. |
| 의미 있는 공백 | 데이터 값을 포함하여 중요한 공백 노드를 복제합니다. | 데이터 값을 포함하여 중요한 공백 노드를 복제합니다. |
| 텍스트 | 데이터 값을 포함하여 텍스트 노드를 복제합니다. | 데이터 값을 포함하여 텍스트 노드를 복제합니다. |
| 공백 | 해당 데이터 값을 포함하여 공백 노드를 복제합니다. | 해당 데이터 값을 포함하여 공백 노드를 복제합니다. |
| XmlDeclaration | 데이터 값을 포함하여 XmlDeclaration 노드를 복제합니다. | 데이터 값을 포함하여 XmlDeclaration 노드를 복제합니다. |
| 다른 모든 노드 형식입니다. | 이러한 노드 형식은 복제할 수 없습니다. | 이러한 노드 형식은 복제할 수 없습니다. |