XmlDocument.ImportNode(XmlNode, Boolean) Methode

Definitie

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.

Van toepassing op