XmlDocument.ImportNode(XmlNode, Boolean) Methode
Definitie
Belangrijk
Bepaalde informatie heeft betrekking op een voorlopige productversie die aanzienlijk kan worden gewijzigd voordat deze wordt uitgebracht. Microsoft biedt geen enkele expliciete of impliciete garanties met betrekking tot de informatie die hier wordt verstrekt.
Hiermee importeert u een knooppunt van een ander document naar het huidige 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
Parameters
- node
- XmlNode
Het knooppunt dat wordt geïmporteerd.
- deep
- Boolean
true om een diepe kloon uit te voeren; anders, false.
Retouren
De geïmporteerde XmlNode.
Uitzonderingen
Het knooppunttype kan niet worden geïmporteerd.
Voorbeelden
In het volgende voorbeeld wordt een boekknooppunt uit een tweede XML-document geïmporteerd in het oorspronkelijke XML-document.
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
In het voorbeeld wordt het bestand als books.xmlinvoer gebruikt.
<?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>
Opmerkingen
Het geretourneerde knooppunt heeft geen bovenliggend item. Het bronknooppunt wordt niet gewijzigd of verwijderd uit het oorspronkelijke document; ImportNode maakt een kopie van het bronknooppunt.
Als u een knooppunt importeert, wordt een XmlNode object gemaakt dat eigendom is van het importdocument, met Name en NodeType identiek aan het bronknooppunt. Het nieuwe object heeft ook de kenmerken die betrekking hebben op naamruimten (Prefix, LocalNameen NamespaceURI).
Afhankelijk van het knooppunttype van het geïmporteerde knooppunt en de waarde van de deep parameter, worden aanvullende informatie naar wens gekopieerd. Met deze methode wordt geprobeerd het gedrag te spiegelen dat wordt verwacht als een fragment van de XML- of HTML-bron van het ene document naar het andere is gekopieerd (herkenning dat de twee documenten in het XML-geval verschillende DTD's kunnen hebben).
In de volgende tabel wordt het specifieke gedrag voor elke XmlNodeTypetabel beschreven.
| XmlNodeType | ImportNode(true) | ImportNode (onwaar) |
|---|---|---|
| Attribute | De Specified eigenschap is ingesteld true op de gegenereerde XmlAttributeeigenschap. De nakomelingen van de bron XmlAttribute worden recursief geïmporteerd en de resulterende knooppunten worden opnieuw samengevoegd om de bijbehorende substructuur te vormen. |
De deep parameter is niet van toepassing op XmlAttribute knooppunten; ze dragen altijd hun onderliggende items bij het importeren. |
| CData | Kopieert het knooppunt, inclusief de bijbehorende gegevens. | Kopieert het knooppunt, inclusief de bijbehorende gegevens. |
| Comment | Kopieert het knooppunt, inclusief de bijbehorende gegevens. | Kopieert het knooppunt, inclusief de bijbehorende gegevens. |
| DocumentFragment | De afstammelingen van het bronknooppunt worden recursief geïmporteerd en de resulterende knooppunten worden opnieuw samengevoegd om de bijbehorende substructuur te vormen. | Er wordt een lege XmlDocumentFragment gegenereerd. |
| DocumentType | Kopieert het knooppunt, inclusief de bijbehorende gegevens.* | Kopieert het knooppunt, inclusief de bijbehorende gegevens.* |
| Element | De onderliggende elementen van het bronelement en de opgegeven kenmerkknooppunten worden recursief geïmporteerd en de resulterende knooppunten worden opnieuw samengevoegd om de bijbehorende substructuur te vormen. Opmerking: standaardkenmerken worden niet gekopieerd. Als het document dat in het document wordt geïmporteerd, standaardkenmerken voor deze elementnaam definieert, worden deze toegewezen. |
Opgegeven kenmerkknooppunten van het bronelement worden geïmporteerd en de gegenereerde XmlAttribute knooppunten worden gekoppeld aan de gegenereerde XmlElement.Opmerking: standaardkenmerken worden niet gekopieerd. Als het document dat in het document wordt geïmporteerd, standaardkenmerken voor deze elementnaam definieert, worden deze toegewezen. |
| EntityReference | Omdat de bron- en doeldocumenten de entiteiten anders kunnen definiëren, kopieert deze methode alleen het XmlEntityReference knooppunt. De vervangende tekst is niet opgenomen. Als in het doeldocument de entiteit is gedefinieerd, wordt de waarde ervan toegewezen. | Omdat de bron- en doeldocumenten de entiteiten anders kunnen definiëren, kopieert deze methode alleen het XmlEntityReference knooppunt. De vervangende tekst is niet opgenomen. Als in het doeldocument de entiteit is gedefinieerd, wordt de waarde ervan toegewezen. |
| Verwerkingsinstructie | Kopieert het doel en de gegevenswaarde van het geïmporteerde knooppunt. | Kopieert het doel en de gegevenswaarde van het geïmporteerde knooppunt. |
| Tekst | Kopieert het knooppunt, inclusief de bijbehorende gegevens. | Kopieert het knooppunt, inclusief de bijbehorende gegevens. |
| SignificanteWitruimte | Kopieert het knooppunt, inclusief de bijbehorende gegevens. | Kopieert het knooppunt, inclusief de bijbehorende gegevens. |
| Witte ruimte | Kopieert het knooppunt, inclusief de bijbehorende gegevens. | Kopieert het knooppunt, inclusief de bijbehorende gegevens. |
| XmlDeclaratie | Kopieert het doel en de gegevenswaarde van het geïmporteerde knooppunt. | Kopieert het doel en de gegevenswaarde van het geïmporteerde knooppunt. |
| Alle andere knooppunttypen. | Deze knooppunttypen kunnen niet worden geïmporteerd. | Deze knooppunttypen kunnen niet worden geïmporteerd. |
*Hoewel DocumentType-knooppunten kunnen worden geïmporteerd, kan een document slechts één DocumentType hebben. Als het document momenteel een DocumentType-knooppunt heeft, moet het worden verwijderd voordat u een nieuw document toevoegt.