XmlDocument.ImportNode(XmlNode, Boolean) Metode
Definisi
Penting
Beberapa informasi terkait produk prarilis yang dapat diubah secara signifikan sebelum dirilis. Microsoft tidak memberikan jaminan, tersirat maupun tersurat, sehubungan dengan informasi yang diberikan di sini.
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.