Delen via


Bestaande knooppunten van het ene document naar het andere kopiëren

De ImportNode-methode is het mechanisme waarmee een knooppunt of volledige substructuur van het ene XmlDocument naar het andere wordt gekopieerd. Het knooppunt dat door de aanroep wordt geretourneerd, is een kopie van het knooppunt uit het brondocument, inclusief kenmerkwaarden, de naam van het knooppunt, het knooppunttype en alle kenmerken met betrekking tot naamruimten, zoals het voorvoegsel, de lokale naam en de URI (Uniform Resource Identifier). Het brondocument wordt niet gewijzigd. Nadat u het knooppunt hebt geïmporteerd, moet u het nog steeds toevoegen aan de structuur met behulp van een van de methoden die worden gebruikt om knooppunten in te voegen.

Wanneer het knooppunt is gekoppeld aan het nieuwe document, is het nieuwe document eigenaar van het knooppunt. De reden hiervoor is dat elk knooppunt, wanneer het wordt gemaakt, een document heeft dat eigenaar is, zelfs als de knooppunten in afzonderlijke documentfragmenten worden gemaakt. Dit is een vereiste van het XML Document Object Model (DOM) en wordt afgedwongen door het ontwerp voor het maken van de fabriek in de XmlDocument-klasse . CreateElement is bijvoorbeeld de enige manier om nieuwe knooppunten te maken.

Afhankelijk van het knooppunttype van het geïmporteerde knooppunt en de waarde van de diepe parameter, wordt aanvullende informatie gekopieerd, indien van toepassing. 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, wat het feit is dat voor XML de twee documenten verschillende documenttypedefinities (DTD's) kunnen hebben.

In de volgende tabel wordt het specifieke gedrag beschreven voor elk type knooppunt dat kan worden geïmporteerd.

Soort knooppunt diepe parameter is waar diepe parameter is onwaar
XmlAttribute De Specified is ingesteld op true op de XmlAttribute. De afstammelingen van de bron-XmlAttribute worden recursief geïmporteerd en de resulterende knooppunten worden opnieuw samengevoegd om de bijbehorende substructuur te vormen. De diepe parameter is niet van toepassing op XmlAttribute-knooppunten , omdat ze altijd hun onderliggende knooppunten meenemen wanneer ze worden geïmporteerd.
XmlCDataSection Kopieert het knooppunt, inclusief de bijbehorende gegevens. Kopieert het knooppunt, inclusief de bijbehorende gegevens.
XmlComment Kopieert het knooppunt, inclusief de bijbehorende gegevens. Kopieert het knooppunt, inclusief de bijbehorende gegevens.
XmlDocumentFragment 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 leeg XmlDocumentFragment gemaakt.
XmlDocumentType Kopieert het knooppunt, inclusief de bijbehorende gegevens.* Kopieert het knooppunt, inclusief de bijbehorende gegevens.*
XmlElement De afstammelingen van het bronelement 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 het nieuwe element. De onderliggende knooppunten worden niet gekopieerd. Opmerking: standaardkenmerken worden niet gekopieerd. Als het document dat in het document wordt geïmporteerd, standaardkenmerken voor deze elementnaam definieert, worden deze toegewezen.
XmlEntityReference Omdat de bron- en doeldocumenten de entiteiten anders kunnen definiëren, kopieert deze methode alleen het knooppunt XmlEntityReference . 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 knooppunt XmlEntityReference . De vervangende tekst is niet opgenomen. Als in het doeldocument de entiteit is gedefinieerd, wordt de waarde ervan toegewezen.
XmlProcessingInstruction Kopieert het doel en de gegevenswaarde van het geïmporteerde knooppunt. Kopieert het doel en de gegevenswaarde van het geïmporteerde knooppunt.
XmlText Kopieert het knooppunt, inclusief de bijbehorende gegevens. Kopieert het knooppunt, inclusief de bijbehorende gegevens.
XmlSignificantWhitespace Kopieert het knooppunt, inclusief de bijbehorende gegevens. Kopieert het knooppunt, inclusief de bijbehorende gegevens.
XmlWhitespace Kopieert het knooppunt, inclusief de bijbehorende gegevens. Kopieert het knooppunt, inclusief de bijbehorende gegevens.
XmlDeclaration 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.

Notitie

Hoewel DocumentType-knooppunten kunnen worden geïmporteerd, kan een document slechts één DocumentType hebben. Zodra u het documenttype hebt geïmporteerd, moet u er dus voordat u het invoegt in de structuur controleren of er geen documenttype in het document is. Zie Knooppunten, inhoud en waarden verwijderen uit een XML-document voor meer informatie over het verwijderen van knooppunten.

Zie ook