XmlDocument.ImportNode(XmlNode, Boolean) Yöntem

Tanım

Düğümü başka bir belgeden geçerli belgeye aktarır.

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

Parametreler

node
XmlNode

İçeri aktarılan düğüm.

deep
Boolean

true derin bir kopya gerçekleştirmek için; aksi takdirde , false.

Döndürülenler

XmlNode

İçeri aktarılan XmlNode.

Özel durumlar

İçeri aktarılamayan bir düğüm türünde bu yöntemi çağırma.

Örnekler

Aşağıdaki örnek ikinci bir XML belgesinden özgün XML belgesine kitap düğümünü içeri aktarır.

#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

Örnekte giriş olarak dosyası books.xmlkullanılır.

<?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>

Açıklamalar

Döndürülen düğümün üst öğesi yok. Kaynak düğüm değiştirilmez veya özgün belgeden kaldırılmaz; ImportNode kaynak düğümün bir kopyasını oluşturur.

Düğümün içeri aktarılması, içeri aktarılan belgenin sahip olduğu ve NodeType kaynak düğümle Name aynı olan bir XmlNode nesne oluşturur. Yeni nesnenin ad alanlarıyla (Prefix, LocalNameve NamespaceURI) ilgili öznitelikleri de vardır.

İçeri aktarılan düğümün düğüm türüne ve parametresinin deep değerine bağlı olarak, ek bilgiler uygun şekilde kopyalanır. Bu yöntem, bir XML veya HTML kaynağı parçası bir belgeden diğerine kopyalandıysa beklenen davranışı yansıtmaya çalışır (XML örneğinde iki belgenin farklı DTD'leri olabileceğini fark eder).

Aşağıdaki tabloda her XmlNodeTypeöğesine özgü davranış açıklanmaktadır.

Xmlnodetype ImportNode(true) ImportNode(false)
Öznitelik Specified özelliği, oluşturulan XmlAttributeüzerinde olarak ayarlanırtrue. Kaynağın XmlAttribute alt öğeleri özyinelemeli olarak içeri aktarılır ve sonuçta elde edilen düğümler karşılık gelen alt ağacı oluşturmak için yeniden bir araya gelir. deep parametresi düğümler için XmlAttribute geçerli değildir; içeri aktarıldığında her zaman alt öğelerini yanlarında taşırlar.
Cdata Verileri de dahil olmak üzere düğümü kopyalar. Verileri de dahil olmak üzere düğümü kopyalar.
Yorum Verileri de dahil olmak üzere düğümü kopyalar. Verileri de dahil olmak üzere düğümü kopyalar.
Documentfragment Kaynak düğümün alt öğeleri özyinelemeli olarak içeri aktarılır ve sonuçta elde edilen düğümler karşılık gelen alt ağacı oluşturmak üzere yeniden bir araya gelir. Boş XmlDocumentFragment bir oluşturulur.
Documenttype Verileri dahil olmak üzere düğümü kopyalar.* Verileri dahil olmak üzere düğümü kopyalar.*
Öğe Kaynak öğenin ve belirtilen öznitelik düğümlerinin alt öğeleri özyinelemeli olarak içeri aktarılır ve sonuçta elde edilen düğümler karşılık gelen alt ağacı oluşturmak için yeniden bir araya gelir.

Not: Varsayılan öznitelikler kopyalanmaz. İçeri aktarılan belge bu öğe adı için varsayılan öznitelikleri tanımlıyorsa, bunlar atanır.
Kaynak öğenin belirtilen öznitelik düğümleri içeri aktarılır ve oluşturulan XmlAttribute düğümler oluşturulan XmlElementöğesine eklenir.

Not: Varsayılan öznitelikler kopyalanmaz. İçeri aktarılan belge bu öğe adı için varsayılan öznitelikleri tanımlıyorsa, bunlar atanır.
EntityReference Kaynak ve hedef belgelerde farklı tanımlanmış varlıklar olabileceğinden, bu yöntem yalnızca düğümü kopyalar XmlEntityReference . Değiştirme metni dahil değildir. Hedef belgede tanımlı varlık varsa, değeri atanır. Kaynak ve hedef belgelerde farklı tanımlanmış varlıklar olabileceğinden, bu yöntem yalnızca düğümü kopyalar XmlEntityReference . Değiştirme metni dahil değildir. Hedef belgede tanımlı varlık varsa, değeri atanır.
Processingınstruction İçeri aktarılan düğümden hedef ve veri değerini kopyalar. İçeri aktarılan düğümden hedef ve veri değerini kopyalar.
Metin Verileri de dahil olmak üzere düğümü kopyalar. Verileri de dahil olmak üzere düğümü kopyalar.
SignificantWhitespace Verileri de dahil olmak üzere düğümü kopyalar. Verileri de dahil olmak üzere düğümü kopyalar.
Boşluk Verileri de dahil olmak üzere düğümü kopyalar. Verileri de dahil olmak üzere düğümü kopyalar.
Xmldeclaration İçeri aktarılan düğümden hedef ve veri değerini kopyalar. İçeri aktarılan düğümden hedef ve veri değerini kopyalar.
Diğer tüm düğüm türleri. Bu düğüm türleri içeri aktarılamaz. Bu düğüm türleri içeri aktarılamaz.

*DocumentType düğümleri içeri aktarılsa da, belgede yalnızca bir DocumentType bulunabilir. Belgenin şu anda bir DocumentType düğümü varsa, yenisini eklemeden önce kaldırılmalıdır.

Şunlara uygulanır