한 문서에서 다른 문서로 기존 노드 복사Copying Existing Nodes from One Document to Another

ImportNode 메서드는 XmlDocument 간에 하나의 노드나 전체 노드 하위 트리를 복사하는 메커니즘입니다.The ImportNode method is the mechanism by which a node or entire node subtree is copied from one XmlDocument to another. 호출에서 반환되는 노드는 특성 값, 노드 이름, 노드 형식과 접두사, 로컬 이름, 네임스페이스 URI(Uniform Resource Identifier)와 같은 모든 네임스페이스 관련 특성이 포함된 소스 문서의 노드 복사본입니다.The node returned from the call is a copy of the node from the source document, including attribute values, the node name, node type, and all namespace-related attributes such as the prefix, local name, and namespace Uniform Resource Identifier (URI). 소스 문서는 변경되지 않습니다.The source document is not changed. 노드를 가져온 후에 계속해서 노드 삽입에 사용되는 메서드 중 하나를 사용하여 트리에 해당 노드를 추가해야 합니다.After you have imported the node, you still have to add it to the tree using one of the methods used to insert nodes.

노드가 새 문서에 추가되면 새 문서가 해당 노드를 소유하게 됩니다.When the node is attached to its new document, the new document owns the node. 이것은 노드가 별도의 문서 조각에서 만들어진 경우에도 만들어진 각 노드를 소유하는 문서가 있어야 하기 때문입니다.The reason is that each node, when created, has an owning document, even if the nodes are created in separate document fragments. 이는 XML DOM(문서 개체 모델)의 요구 사항이며 XmlDocument 클래스에 대한 팩터리 생성 디자인에 의해 적용됩니다.This is a requirement of the XML Document Object Model (DOM) and is enforced by the factory creation design on the XmlDocument class. 예를 들어 CreateElement는 새 노드를 만드는 유일한 방법입니다.For example, CreateElement, is the only way to create new nodes.

가져온 노드의 노드 형식과 deep 매개 변수의 값에 따라 해당하는 추가 정보가 복사됩니다.Depending on the node type of the imported node and the value of the deep parameter, additional information is copied as appropriate. 이 메서드는 XML에 대한 두 문서의 DTD(문서 종류 정의)가 서로 다를 수 있다는 가정 하에, XML이나 HTML 소스의 조각을 한 문서에서 다른 문서로 복사했을 경우에 예상되는 동작을 미러링합니다.This method attempts to mirror the behavior expected if a fragment of XML or HTML source was copied from one document to another, accounting for the fact that for XML, the two documents may have different document type definitions (DTDs).

다음 표에서는 가져올 수 있는 각 노드 형식에 대한 관련 동작을 설명합니다.The following table describes the specific behavior for each type of node that can be imported.

노드 형식Node Type deep 매개 변수가 true인 경우deep parameter is true deep 매개 변수가 false인 경우deep parameter is false
XmlAttributeXmlAttribute Specified가 XmlAttribute에서 true로 설정됩니다.The Specified is set to true on the XmlAttribute. 소스 XmlAttribute의 하위 항목을 재귀적으로 가져오고 결과 노드를 다시 조합하여 해당하는 하위 트리를 구성합니다.The descendants of the source XmlAttribute are recursively imported and the resulting nodes reassembled to form the corresponding subtree. XmlAttribute 노드를 가져오면 항상 자식 노드가 동반되기 때문에 deep 매개 변수가 적용되지 않습니다.The deep parameter does not apply to XmlAttribute nodes, because they always carry their child nodes with them when imported.
XmlCDataSectionXmlCDataSection 해당 데이터를 포함하여 노드를 복사합니다.Copies the node, including its data. 해당 데이터를 포함하여 노드를 복사합니다.Copies the node, including its data.
XmlCommentXmlComment 해당 데이터를 포함하여 노드를 복사합니다.Copies the node, including its data. 해당 데이터를 포함하여 노드를 복사합니다.Copies the node, including its data.
XmlDocumentFragmentXmlDocumentFragment 소스 노드의 하위 항목을 재귀적으로 가져오고 결과 노드를 다시 조합하여 해당하는 하위 트리를 구성합니다.The descendants of the source node are recursively imported and the resulting nodes reassembled to form the corresponding subtree. XmlDocumentFragment가 생성됩니다.An empty XmlDocumentFragment is created.
XmlDocumentTypeXmlDocumentType 해당 데이터를 포함하여 노드를 복사합니다.*Copies the node, including its data.* 해당 데이터를 포함하여 노드를 복사합니다.*Copies the node, including its data.*
XmlElementXmlElement 소스 요소의 하위 항목을 재귀적으로 가져오고 결과 노드를 다시 조합하여 해당하는 하위 트리를 구성합니다.The descendants of the source element are recursively imported and the resulting nodes reassembled to form the corresponding subtree. 참고: 기본 특성이 복사되지 않습니다.Note: Default attributes are not copied. 가져오고 있는 문서에 이 요소 이름에 대한 기본 특성이 정의되어 있는 경우 이 특성이 할당됩니다.If the document being imported into defines default attributes for this element name, those are assigned. 소스 요소의 지정된 특성 노드를 가져오고, 생성된 XmlAttribute 노드가 새 요소에 연결됩니다.Specified attribute nodes of the source element are imported, and the generated XmlAttribute nodes are attached to the new element. 하위 노드는 복사되지 않습니다.The descendant nodes are not copied. 참고: 기본 특성이 복사되지 않습니다.Note: Default attributes are not copied. 가져오고 있는 문서에 이 요소 이름에 대한 기본 특성이 정의되어 있는 경우 이 특성이 할당됩니다.If the document being imported into defines default attributes for this element name, those are assigned.
XmlEntityReferenceXmlEntityReference 소스와 대상 문서가 다르게 정의된 엔터티를 가질 수 있으므로 이 메서드에서는 XmlEntityReference 노드만 복사합니다.Because the source and destination documents could have the entities defined differently, this method only copies the XmlEntityReference node. 대체 텍스트는 포함되지 않습니다.The replacement text is not included. 대상 문서에 엔터티가 정의되어 있는 경우 해당 값이 할당됩니다.If the destination document has the entity defined, its value is assigned. 소스와 대상 문서가 다르게 정의된 엔터티를 가질 수 있으므로 이 메서드에서는 XmlEntityReference 노드만 복사합니다.Because the source and destination documents could have the entities defined differently, this method only copies the XmlEntityReference node. 대체 텍스트는 포함되지 않습니다.The replacement text is not included. 대상 문서에 엔터티가 정의되어 있는 경우 해당 값이 할당됩니다.If the destination document has the entity defined, its value is assigned.
XmlProcessingInstructionXmlProcessingInstruction 가져온 노드에서 대상과 데이터 값을 복사합니다.Copies the target and data value from the imported node. 가져온 노드에서 대상과 데이터 값을 복사합니다.Copies the target and data value from the imported node.
XmlTextXmlText 해당 데이터를 포함하여 노드를 복사합니다.Copies the node, including its data. 해당 데이터를 포함하여 노드를 복사합니다.Copies the node, including its data.
XmlSignificantWhitespaceXmlSignificantWhitespace 해당 데이터를 포함하여 노드를 복사합니다.Copies the node, including its data. 해당 데이터를 포함하여 노드를 복사합니다.Copies the node, including its data.
XmlWhitespaceXmlWhitespace 해당 데이터를 포함하여 노드를 복사합니다.Copies the node, including its data. 해당 데이터를 포함하여 노드를 복사합니다.Copies the node, including its data.
XmlDeclarationXmlDeclaration 가져온 노드에서 대상과 데이터 값을 복사합니다.Copies the target and data value from the imported node. 가져온 노드에서 대상과 데이터 값을 복사합니다.Copies the target and data value from the imported node.
기타 모든 노드 형식All other node types 이 노드 형식은 가져올 수 없습니다.These node types cannot be imported. 이 노드 형식은 가져올 수 없습니다.These node types cannot be imported.

참고

여러 개의 DocumentType 노드를 가져올 수는 있지만 한 문서는 오직 하나의 DocumentType만 포함할 수 있습니다.Although DocumentType nodes can be imported, a document can only have one DocumentType. 따라서 문서 형식을 가져온 후에는 트리에 삽입하기 전에 문서에 문서 형식이 없는지 확인해야 합니다.So, once you have imported the document type, before inserting it into tree you have to make sure that there is no document type in the document. 노드 제거에 대한 자세한 내용은 XML 문서에서 노드, 내용 및 값 제거를 참조하세요.For information on removing nodes, see Removing Nodes, Content, and Values from an XML Document.

참조See also