Freigeben über


Kopieren vorhandener Knoten aus einem Dokument in ein anderes

Die ImportNode-Methode ist der Mechanismus, mit dem ein Knoten oder eine gesamte Knotenunterstruktur aus einem XmlDocument in ein anderes kopiert wird. Der vom Aufruf zurückgegebene Knoten ist eine Kopie des Knotens aus dem Quelldokument, einschließlich Attributwerten, Knotenname, Knotentyp und alle namespacebezogenen Attribute wie Präfix, lokaler Name und Namespace-URI (Uniform Resource Identifier). Das Quelldokument wird nicht geändert. Nachdem Sie den Knoten importiert haben, müssen Sie ihn der Struktur mithilfe einer der Methoden hinzufügen, die zum Einfügen von Knoten verwendet werden.

Wenn der Knoten an das neue Dokument angefügt ist, besitzt das neue Dokument den Knoten. Der Grund dafür ist, dass jeder Knoten, wenn er erstellt wird, über ein eigenes Dokument verfügt, auch wenn die Knoten in separaten Dokumentfragmenten erstellt werden. Dies ist eine XML-DOM-spezifische (Dokumentobjektmodell) Anforderung, die durch den Factoryerstellungsentwurf für die XmlDocument-Klasse durchgesetzt wird. Beispielsweise ist CreateElement die einzige Möglichkeit, neue Knoten zu erstellen.

Je nach Knotentyp des importierten Knotens und dem Wert des deep-Parameters werden ggf. zusätzliche Informationen kopiert. Diese Methode versucht, das erwartete Verhalten zu spiegeln, wenn ein Fragment von XML- oder HTML-Quelle aus einem Dokument in ein anderes kopiert wurde, wobei die Tatsache, dass die beiden Dokumente für XML möglicherweise unterschiedliche Dokumenttypdefinitionen (DTDs) aufweisen, berücksichtigen.

In der folgenden Tabelle wird das spezifische Verhalten für jeden Knotentyp beschrieben, der importiert werden kann.

Knotentyp deep-Parameter ist true. deep-Parameter ist "false".
XmlAttribute Der Specified Wert ist für das XmlAttribute auf "true " festgelegt. Die Nachfolger der XmlAttribute-Quelle werden rekursiv importiert und die resultierenden Knoten neu zusammengesetzt, um die entsprechende Unterstruktur zu bilden. Der deep-Parameter gilt nicht für XmlAttribute-Knoten , da sie beim Importieren immer ihre untergeordneten Knoten mit sich tragen.
XmlCDataSection Kopiert den Knoten einschließlich seiner Daten. Kopiert den Knoten einschließlich seiner Daten.
Xml-Kommentar Kopiert den Knoten einschließlich seiner Daten. Kopiert den Knoten einschließlich seiner Daten.
Xml-Dokumentfragment Die Nachfolger des Quellknotens werden rekursiv importiert und die resultierenden Knoten neu zusammengesetzt, um die entsprechende Unterstruktur zu bilden. Es wird ein leeres XmlDocumentFragment erstellt.
XmlDocumentType Kopiert den Knoten einschließlich seiner Daten.* Kopiert den Knoten einschließlich seiner Daten.*
XmlElement Die untergeordneten Elemente des Quellelements werden rekursiv importiert. Die daraus resultierenden Knoten werden neu assembliert und bilden die entsprechende Teilstruktur. Anmerkung: Standardattribute werden nicht kopiert. Wenn das Dokument, in das importiert wird, Standardattribute für diesen Elementnamen definiert, werden diese zugewiesen. Angegebene Attributknoten des Quellelements werden importiert, und die generierten XmlAttribute-Knoten werden dem neuen Element angefügt. Die untergeordneten Knoten werden nicht kopiert. Anmerkung: Standardattribute werden nicht kopiert. Wenn das Dokument, in das importiert wird, Standardattribute für diesen Elementnamen definiert, werden diese zugewiesen.
XmlEntityReference Da die Quell- und Zieldokumente die Entitäten anders definiert haben könnten, kopiert diese Methode nur den XmlEntityReference-Knoten . Der Ersetzungstext ist nicht enthalten. Wenn das Zieldokument die Entität definiert hat, wird ihr Wert zugewiesen. Da die Quell- und Zieldokumente die Entitäten anders definiert haben könnten, kopiert diese Methode nur den XmlEntityReference-Knoten . Der Ersetzungstext ist nicht enthalten. Wenn das Zieldokument die Entität definiert hat, wird ihr Wert zugewiesen.
Xml-Verarbeitungsanweisung Kopiert den Ziel- und Datenwert aus dem importierten Knoten. Kopiert den Ziel- und Datenwert aus dem importierten Knoten.
XmlText Kopiert den Knoten einschließlich seiner Daten. Kopiert den Knoten einschließlich seiner Daten.
XmlSignificantWhitespace Kopiert den Knoten einschließlich seiner Daten. Kopiert den Knoten einschließlich seiner Daten.
XmlWhitespace Kopiert den Knoten einschließlich seiner Daten. Kopiert den Knoten einschließlich seiner Daten.
XmlDeclaration Kopiert den Ziel- und Datenwert aus dem importierten Knoten. Kopiert den Ziel- und Datenwert aus dem importierten Knoten.
Alle anderen Knotentypen Diese Knotentypen können nicht importiert werden. Diese Knotentypen können nicht importiert werden.

Hinweis

Obwohl DocumentType-Knoten importiert werden können, kann ein Dokument nur einen DocumentType aufweisen. Sobald Sie also den Dokumenttyp importiert haben, müssen Sie vor dem Einsetzen in die Struktur sicherstellen, dass sich in dem Dokument kein anderer Dokumenttyp befindet. Informationen zum Entfernen von Knoten finden Sie unter Entfernen von Knoten, Inhalt und Werten aus einem XML-Dokument.

Siehe auch