ImportNode 메서드는 노드 또는 전체 노드 하위 트리가 한 XmlDocument에서 다른 XmlDocument로 복사되는 메커니즘입니다. 호출에서 반환된 노드는 특성 값, 노드 이름, 노드 형식 및 접두사, 로컬 이름 및 네임스페이스 URI(Uniform Resource Identifier)와 같은 모든 네임스페이스 관련 특성을 포함하여 원본 문서의 노드 복사본입니다. 원본 문서는 변경되지 않습니다. 노드를 가져온 후에도 노드를 삽입하는 데 사용되는 방법 중 하나를 사용하여 트리에 추가해야 합니다.
노드가 새 문서에 연결되면 새 문서가 노드를 소유합니다. 그 이유는 노드가 별도의 문서 조각에서 만들어지더라도 각 노드를 만들 때 소유하는 문서가 있기 때문입니다. 이는 XML DOM(문서 개체 모델)의 요구 사항이며 XmlDocument 클래스의 팩터리 만들기 디자인에 의해 적용됩니다. 예를 들어 CreateElement는 새 노드를 만드는 유일한 방법입니다.
가져온 노드의 노드 형식 및 딥 매개 변수의 값에 따라 추가 정보가 적절하게 복사됩니다. 이 메서드는 XML 또는 HTML 원본의 조각이 한 문서에서 다른 문서로 복사된 경우 예상되는 동작을 미러링하려고 시도하며, XML의 경우 두 문서에 다른 DTD(문서 형식 정의)가 있을 수 있습니다.
다음 표에서는 가져올 수 있는 노드의 각 유형에 대한 특정 동작에 대해 설명합니다.
노드 형식 | deep 매개 변수가 true입니다. | deep 매개 변수가 false입니다. |
---|---|---|
XmlAttribute | Specified XmlAttribute에서 true로 설정됩니다. 원본 XmlAttribute 의 하위 항목을 재귀적으로 가져오고 결과 노드를 다시 어셈블하여 해당 하위 트리를 형성합니다. | 딥 매개 변수는 가져올 때 항상 자식 노드를 가지고 다니기 때문에 XmlAttribute 노드에는 적용되지 않습니다. |
XmlCData 섹션 | 해당 데이터를 포함하여 노드를 복사합니다. | 해당 데이터를 포함하여 노드를 복사합니다. |
XML 주석 | 해당 데이터를 포함하여 노드를 복사합니다. | 해당 데이터를 포함하여 노드를 복사합니다. |
XmlDocumentFragment | 원본 노드의 하위 항목을 재귀적으로 가져오고 결과 노드를 다시 어셈블하여 해당 하위 트리를 형성합니다. | 빈 XmlDocumentFragment 가 만들어집니다. |
XML 문서 유형 | 해당 데이터를 포함하여 노드를 복사합니다.* | 해당 데이터를 포함하여 노드를 복사합니다.* |
XmlElement | 원본 요소의 하위 항목은 재귀적으로 가져오고 결과 노드는 해당 하위 트리를 형성하기 위해 다시 어셈블됩니다. 메모: 기본 특성은 복사되지 않습니다. 가져올 문서가 이 요소 이름의 기본 특성을 정의하는 경우 해당 특성이 할당됩니다. | 원본 요소의 지정된 특성 노드를 가져오고 생성된 XmlAttribute 노드가 새 요소에 연결됩니다. 하위 노드는 복사되지 않습니다. 메모: 기본 특성은 복사되지 않습니다. 가져올 문서가 이 요소 이름의 기본 특성을 정의하는 경우 해당 특성이 할당됩니다. |
XmlEntityReference | 원본 및 대상 문서에는 엔터티가 다르게 정의되어 있을 수 있으므로 이 메서드는 XmlEntityReference 노드만 복사합니다. 대체 텍스트는 포함되지 않습니다. 대상 문서에 엔터티가 정의되어 있으면 해당 값이 할당됩니다. | 원본 및 대상 문서에는 엔터티가 다르게 정의되어 있을 수 있으므로 이 메서드는 XmlEntityReference 노드만 복사합니다. 대체 텍스트는 포함되지 않습니다. 대상 문서에 엔터티가 정의되어 있으면 해당 값이 할당됩니다. |
XML 처리 명령부 | 가져온 노드에서 대상 및 데이터 값을 복사합니다. | 가져온 노드에서 대상 및 데이터 값을 복사합니다. |
XmlText (XML 텍스트) | 해당 데이터를 포함하여 노드를 복사합니다. | 해당 데이터를 포함하여 노드를 복사합니다. |
XmlSignificantWhitespace (중요 공백) | 해당 데이터를 포함하여 노드를 복사합니다. | 해당 데이터를 포함하여 노드를 복사합니다. |
XmlWhitespace | 해당 데이터를 포함하여 노드를 복사합니다. | 해당 데이터를 포함하여 노드를 복사합니다. |
XmlDeclaration | 가져온 노드에서 대상 및 데이터 값을 복사합니다. | 가져온 노드에서 대상 및 데이터 값을 복사합니다. |
다른 모든 노드 형식 | 이러한 노드 형식은 가져올 수 없습니다. | 이러한 노드 형식은 가져올 수 없습니다. |
비고
DocumentType 노드를 가져올 수 있지만 문서에는 DocumentType이 하나만 있을 수 있습니다. 따라서 문서 형식을 가져온 후에는 트리에 삽입하기 전에 문서에 문서 형식이 없는지 확인해야 합니다. 노드를 제거하는 방법에 대한 자세한 내용은 XML 문서에서 노드, 콘텐츠 및 값 제거를 참조하세요.
참고하십시오
.NET