Bagikan melalui


XmlDocument.ImportNode(XmlNode, Boolean) Metode

Definisi

Mengimpor simpul dari dokumen lain ke dokumen saat ini.

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

Parameter

node
XmlNode

Simpul yang sedang diimpor.

deep
Boolean

true untuk melakukan klon mendalam; jika tidak, false.

Mengembalikan

Yang diimpor XmlNode.

Pengecualian

Jenis node tidak dapat diimpor.

Contoh

Contoh berikut mengimpor simpul buku dari dokumen XML kedua ke dalam dokumen XML asli.

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

Contohnya menggunakan file, books.xml, sebagai 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>

Keterangan

Simpul yang dikembalikan tidak memiliki induk. Simpul sumber tidak diubah atau dihapus dari dokumen asli; ImportNode membuat salinan simpul sumber.

Mengimpor simpul membuat objek yang XmlNode dimiliki oleh dokumen impor, dengan dan NodeType identik dengan Name simpul sumber. Objek baru juga memiliki atribut yang terkait dengan namespace (Prefix, LocalName, dan NamespaceURI).

Bergantung pada jenis node dari node yang diimpor dan nilai deep parameter, informasi tambahan disalin sebagaimana mewajibkan. Metode ini mencoba mencerminkan perilaku yang diharapkan jika fragmen sumber XML atau HTML disalin dari satu dokumen ke dokumen lainnya (mengenali bahwa, dalam kasus XML, kedua dokumen dapat memiliki DTD yang berbeda).

Tabel berikut ini menjelaskan perilaku tertentu untuk setiap XmlNodeType.

XmlNodeType ImportNode(true) ImportNode(false)
Attribute Properti Specified diatur ke true pada yang dihasilkan XmlAttribute. Keturunan sumber XmlAttribute diimpor secara rekursif dan node yang dihasilkan disusun ulang untuk membentuk subtree yang sesuai. Parameter deep tidak berlaku untuk XmlAttribute simpul; mereka selalu membawa anak-anak mereka saat diimpor.
CData Menyalin simpul, termasuk datanya. Menyalin simpul, termasuk datanya.
Comment Menyalin simpul, termasuk datanya. Menyalin simpul, termasuk datanya.
DocumentFragment Turunan node sumber diimpor secara rekursif dan node yang dihasilkan disusun ulang untuk membentuk subtree yang sesuai. XmlDocumentFragment Kosong dihasilkan.
Jenis Dokumen Menyalin simpul, termasuk datanya.* Menyalin simpul, termasuk datanya.*
Elemen Turunan elemen sumber dan node atribut yang ditentukan diimpor secara rekursif dan node yang dihasilkan disusun ulang untuk membentuk subtree yang sesuai.

Catatan: Atribut default tidak disalin. Jika dokumen yang diimpor mendefinisikan atribut default untuk nama elemen ini, atribut tersebut akan ditetapkan.
Node atribut tertentu dari elemen sumber diimpor, dan simpul yang dihasilkan XmlAttribute dilampirkan ke yang dihasilkan XmlElement.

Catatan: Atribut default tidak disalin. Jika dokumen yang diimpor mendefinisikan atribut default untuk nama elemen ini, atribut tersebut akan ditetapkan.
EntityReference Karena dokumen sumber dan tujuan dapat memiliki entitas yang ditentukan secara berbeda, metode ini hanya menyalin simpul XmlEntityReference . Teks pengganti tidak disertakan. Jika dokumen tujuan memiliki entitas yang ditentukan, nilainya ditetapkan. Karena dokumen sumber dan tujuan dapat memiliki entitas yang ditentukan secara berbeda, metode ini hanya menyalin simpul XmlEntityReference . Teks pengganti tidak disertakan. Jika dokumen tujuan memiliki entitas yang ditentukan, nilainya ditetapkan.
Instruksi Pemrosesan Menyalin target dan nilai data dari simpul yang diimpor. Menyalin target dan nilai data dari simpul yang diimpor.
Teks Menyalin simpul, termasuk datanya. Menyalin simpul, termasuk datanya.
SignificantWhitespace Menyalin simpul, termasuk datanya. Menyalin simpul, termasuk datanya.
Whitespace Menyalin simpul, termasuk datanya. Menyalin simpul, termasuk datanya.
XmlDeclaration Menyalin target dan nilai data dari simpul yang diimpor. Menyalin target dan nilai data dari simpul yang diimpor.
Semua jenis node lainnya. Jenis node ini tidak dapat diimpor. Jenis node ini tidak dapat diimpor.

*Meskipun node DocumentType dapat diimpor, dokumen hanya dapat memiliki satu DocumentType. Jika dokumen saat ini memiliki simpul DocumentType, dokumen tersebut harus dihapus sebelum menambahkan yang baru.

Berlaku untuk