XmlDocument.ImportNode(XmlNode, Boolean) 메서드

정의

다른 문서에서 현재 문서로 노드를 가져옵니다.Imports a node from another document to the current document.

public:
 virtual System::Xml::XmlNode ^ ImportNode(System::Xml::XmlNode ^ node, bool deep);
public virtual System.Xml.XmlNode ImportNode (System.Xml.XmlNode node, bool deep);
abstract member ImportNode : System.Xml.XmlNode * bool -> System.Xml.XmlNode
override this.ImportNode : System.Xml.XmlNode * bool -> System.Xml.XmlNode
Public Overridable Function ImportNode (node As XmlNode, deep As Boolean) As XmlNode

매개 변수

node
XmlNode

가져올 노드입니다.The node being imported.

deep
Boolean

전체 복제를 수행하려면 true이고, 그렇지 않으면 false입니다.true to perform a deep clone; otherwise, false.

반환

가져온 XmlNode입니다.The imported XmlNode.

예외

가져올 수 없는 노드 형식에 대해 이 메서드 호출Calling this method on a node type which cannot be imported.

예제

다음 예제에서는 원본 XML 문서에 두 번째 XML 문서에서 책 노드를 가져옵니다.The following example imports a book node from a second XML document into the original XML document.

#using <System.Xml.dll>

using namespace System;
using namespace System::IO;
using namespace System::Xml;
int main()
{
   
   //Create the XmlDocument.
   XmlDocument^ doc = gcnew XmlDocument;
   doc->LoadXml( "<bookstore><book genre='novel' ISBN='1-861001-57-5'><title>Pride And Prejudice</title></book></bookstore>" );
   
   //Create another XmlDocument which holds a list of books.
   XmlDocument^ doc2 = gcnew XmlDocument;
   doc2->Load( "books.xml" );
   
   //Import the last book node from doc2 into the original document.
   XmlNode^ newBook = doc->ImportNode( doc2->DocumentElement->LastChild, true );
   doc->DocumentElement->AppendChild( newBook );
   Console::WriteLine( "Display the modified XML..." );
   doc->Save( Console::Out );
}

using System;
using System.IO;
using System.Xml;

public class Sample
{
  public static void Main()
  {
    //Create the XmlDocument.
    XmlDocument doc = new XmlDocument();
    doc.LoadXml("<bookstore>" +
                "<book genre='novel' ISBN='1-861001-57-5'>" +
                "<title>Pride And Prejudice</title>" +
                "</book>" +
                "</bookstore>");

    //Create another XmlDocument which holds a list of books.
    XmlDocument doc2 = new XmlDocument();
    doc2.Load("books.xml");

    //Import the last book node from doc2 into the original document.
    XmlNode newBook = doc.ImportNode(doc2.DocumentElement.LastChild, true);
    doc.DocumentElement.AppendChild(newBook); 
    
    Console.WriteLine("Display the modified XML...");
    doc.Save(Console.Out);

  }
}
Option Explicit
Option Strict

Imports System.IO
Imports System.Xml

Public Class Sample
    
    Public Shared Sub Main()
        'Create the XmlDocument.
        Dim doc As New XmlDocument()
        doc.LoadXml("<bookstore>" & _
                    "<book genre='novel' ISBN='1-861001-57-5'>" & _
                    "<title>Pride And Prejudice</title>" & _
                    "</book>" & _
                    "</bookstore>")
        
        'Create another XmlDocument which holds a list of books.
        Dim doc2 As New XmlDocument()
        doc2.Load("books.xml")
        
        'Import the last book node from doc2 into the original document.
        Dim newBook As XmlNode = doc.ImportNode(doc2.DocumentElement.LastChild, True)
        doc.DocumentElement.AppendChild(newBook)
        
        Console.WriteLine("Display the modified XML...")
        doc.Save(Console.Out)
    End Sub
End Class

이 예제에서는 파일을 사용 하 여 books.xml입력으로 합니다.The example uses the file, books.xml, as input.

<?xml version='1.0'?>
<!-- This file represents a fragment of a book store inventory database -->
<bookstore>
  <book genre="autobiography" publicationdate="1981" ISBN="1-861003-11-0">
    <title>The Autobiography of Benjamin Franklin</title>
    <author>
      <first-name>Benjamin</first-name>
      <last-name>Franklin</last-name>
    </author>
    <price>8.99</price>
  </book>
  <book genre="novel" publicationdate="1967" ISBN="0-201-63361-2">
    <title>The Confidence Man</title>
    <author>
      <first-name>Herman</first-name>
      <last-name>Melville</last-name>
    </author>
    <price>11.99</price>
  </book>
  <book genre="philosophy" publicationdate="1991" ISBN="1-861001-57-6">
    <title>The Gorgias</title>
    <author>
      <name>Plato</name>
    </author>
    <price>9.99</price>
  </book>
</bookstore>

설명

반환 된 노드는 부모가 없습니다.The returned node has no parent. 원본 노드는 변경 되거나 원래 문서에서 제거 ImportNode 소스 노드의 복사본을 만듭니다.The source node is not altered or removed from the original document; ImportNode creates a copy of the source node.

노드를 가져오면 만듭니다는 XmlNode 가져오기 문서를 사용 하 여 소유 하는 개체 NameNodeType 동일 원본 노드에 해당 합니다.Importing a node creates an XmlNode object owned by the importing document, with Name and NodeType identical to the source node. 새 개체에는 네임 스페이스에 관련 된 특성 (Prefix하십시오 LocalName, 및 NamespaceURI).The new object also has the attributes related to namespaces (Prefix, LocalName, and NamespaceURI).

가져온 노드와 값 노드 유형에 따라는 deep 매개 변수를 추가 정보를 적절 하 게 복사 됩니다.Depending on the node type of the imported node and the value of the deep parameter, additional information is copied as appropriate. 이 메서드는 예상 되는 동작 간에 XML 이나 HTML 소스의 조각을 한 문서에서 복사 된 경우 미러 하려고 시도 (인식 하는 XML의 경우 두 개의 문서가 있을 수 다른 Dtd).This method attempts to mirror the behavior expected if a fragment of XML or HTML source was copied from one document to another (recognizing that, in the XML case, the two documents could have different DTDs).

다음 표에서 각 특정 동작을 설명 XmlNodeType합니다.The following table describes the specific behavior for each XmlNodeType.

XmlNodeTypeXmlNodeType ImportNode(true)ImportNode(true) ImportNode(false)ImportNode(false)
특성Attribute 합니다 Specified 속성이 true 생성 되 XmlAttribute합니다.The Specified property is set to true on the generated XmlAttribute. 원본의 하위 XmlAttribute 을 재귀적으로 가져오고 결과 노드를 다시 조합 하는 해당 하위 트리를 구성 합니다.The descendants of the source XmlAttribute are recursively imported and the resulting nodes reassembled to form the corresponding subtree. 합니다 deep 매개 변수가 적용 되지 않습니다 XmlAttribute 노드,는 항상 가져올 때 사용 하 여 해당 자식 항목을 수행 합니다.The deep parameter does not apply to XmlAttribute nodes; they always carry their children with them when imported.
CDataCData 해당 데이터를 포함하여 노드를 복사합니다.Copies the node, including its data. 해당 데이터를 포함하여 노드를 복사합니다.Copies the node, including its data.
주석Comment 해당 데이터를 포함하여 노드를 복사합니다.Copies the node, including its data. 해당 데이터를 포함하여 노드를 복사합니다.Copies the node, including its data.
DocumentFragmentDocumentFragment 소스 노드의 하위 항목을 재귀적으로 가져오고 결과 노드를 다시 조합하여 해당하는 하위 트리를 구성합니다.The descendants of the source node are recursively imported and the resulting nodes reassembled to form the corresponding subtree. XmlDocumentFragment 생성 됩니다.An empty XmlDocumentFragment is generated.
DocumentTypeDocumentType 해당 데이터를 포함하여 노드를 복사합니다.*Copies the node, including its data.* 해당 데이터를 포함하여 노드를 복사합니다.*Copies the node, including its data.*
요소Element 소스 요소와 지정 된 특성 노드 해당 하위 항목 재귀적으로 가져오고 결과 노드를 다시 해당 하위 트리를 형성 하 합니다.The descendants of the source element and its specified attribute nodes 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 노드에 연결 되 고 생성 된 XmlElement합니다.Specified attribute nodes of the source element are imported, and the generated XmlAttribute nodes are attached to the generated XmlElement.

참고: 기본 특성이 복사되지 않습니다.Note: Default attributes are not copied. 가져오고 있는 문서에 이 요소 이름에 대한 기본 특성이 정의되어 있는 경우 이 특성이 할당됩니다.If the document being imported into defines default attributes for this element name, those are assigned.
EntityReferenceEntityReference 이 메서드는만 복사 소스와 대상 문서가 다르게 정의 된 엔터티를 가질 수 있으므로 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.
ProcessingInstructionProcessingInstruction 가져온 노드에서 대상과 데이터 값을 복사합니다.Copies the target and data value from the imported node. 가져온 노드에서 대상과 데이터 값을 복사합니다.Copies the target and data value from the imported node.
텍스트Text 해당 데이터를 포함하여 노드를 복사합니다.Copies the node, including its data. 해당 데이터를 포함하여 노드를 복사합니다.Copies the node, including its data.
SignificantWhitespaceSignificantWhitespace 해당 데이터를 포함하여 노드를 복사합니다.Copies the node, including its data. 해당 데이터를 포함하여 노드를 복사합니다.Copies the node, including its data.
WhitespaceWhitespace 해당 데이터를 포함하여 노드를 복사합니다.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. 문서에는 현재 DocumenType 노드에, 경우에 새 필터를 추가 하기 전에 제거 해야 합니다.If the document currently has a DocumenType node, it must be removed before adding a new one.

적용 대상