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.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 노드를 복제합니다. |
다른 모든 노드 형식입니다. | 이러한 노드 형식은 복제할 수 없습니다. | 이러한 노드 형식은 복제할 수 없습니다. |