Partager via


Copie de nœuds existants d'un document à un autre

La méthode ImportNode est le mécanisme par lequel un nœud ou un sous-arbre de nœuds entier est copié d'un XmlDocument à un autre. Le nœud retourné par l'appel est une copie du nœud issu du document source, y compris sur le plan des valeurs d'attribut, du nom du nœud, du type de nœud et de tous les attributs associés à l'espace de noms tels que le préfixe, le nom local et l'URI (Uniform Resource Identifier) d'espace de noms. Le document source n'est pas modifié. À l'issue de l'importation du nœud, il vous reste encore à l'ajouter à l'arborescence à l'aide d'une des méthodes d'insertion de nœuds.

Dès que le nœud a été joint à son nouveau document, ce dernier en prend possession. En effet, chaque nœud, lors de sa création, possède un document propriétaire, même si les nœuds sont créés dans des fragments de document distincts. Il s'agit d'une condition imposée par le DOM (Document Object Model) XML, qui est appliquée par le design de création de factory à la classe XmlDocument. Par exemple, CreateElement constitue la seule solution pour créer de nouveaux nœuds.

En fonction du type de nœud que présente le nœud importé et de la valeur du paramètre deep, d'autres informations sont éventuellement copiées. Cette méthode tente de refléter le comportement attendu si un fragment de code source HTML ou XML était copié d'un document à un autre, en tenant compte du fait que, dans le cas d'un document XML, les deux documents peuvent posséder des définitions de type de document (DTD) différentes.

Le tableau suivant décrit le comportement spécifique pour chaque type de nœud pouvant être importé.

Type de nœud

Paramètre deep avec la valeur true

Paramètre deep avec la valeur false

XmlAttribute

La propriété XmlAttribute.Specified est définie avec la valeur true sur XmlAttribute. Les descendants du XmlAttribute source sont importés de façon récursive et les nœuds résultants sont assemblés à nouveau pour former le sous-arbre correspondant.

Le paramètre deep ne s'applique pas aux nœuds XmlAttribute, parce qu'ils emportent toujours avec eux leurs nœuds enfants lorsqu'ils sont importés.

XmlCDataSection

Copie le nœud avec ses données.

Copie le nœud avec ses données.

XmlComment

Copie le nœud avec ses données.

Copie le nœud avec ses données.

XmlDocumentFragment

Les descendants du nœud source sont importés de manière récursive et les nœuds obtenus sont réassemblés pour former le sous-arbre correspondant.

Un XmlDocumentFragment vide est créé.

XmlDocumentType

Copie le nœud avec ses données.*

Copie le nœud avec ses données.*

XmlElement

Les descendants de l'élément source sont importés de façon récursive et les nœuds résultants sont assemblés à nouveau pour former le sous-arbre correspondant.

RemarqueRemarque
Les attributs par défaut ne sont pas copiés.Si le document destinataire de l'importation définit des attributs par défaut pour ce nom d'élément, ces attributs sont assignés.

Les nœuds d'attribut spécifiés de l'élément source sont importés et les nœuds XmlAttribute générés sont joints au nouvel élément. Les nœuds descendants ne sont pas copiés.

RemarqueRemarque
Les attributs par défaut ne sont pas copiés.Si le document destinataire de l'importation définit des attributs par défaut pour ce nom d'élément, ces attributs sont assignés.

XmlEntityReference

Étant donné que les documents source et de destination peuvent comporter des définitions différentes des entités, cette méthode ne copie que le nœud XmlEntityReference. Le texte de remplacement n'est pas inclus. Si l'entité est définie dans le document de destination, sa valeur est assignée.

Étant donné que les documents source et de destination peuvent comporter des définitions différentes des entités, cette méthode ne copie que le nœud XmlEntityReference. Le texte de remplacement n'est pas inclus. Si l'entité est définie dans le document de destination, sa valeur est assignée.

XmlProcessingInstruction

Copie la cible et la valeur de données à partir du nœud importé.

Copie la cible et la valeur de données à partir du nœud importé.

XmlText

Copie le nœud avec ses données.

Copie le nœud avec ses données.

XmlSignificantWhitespace

Copie le nœud avec ses données.

Copie le nœud avec ses données.

XmlWhitespace

Copie le nœud avec ses données.

Copie le nœud avec ses données.

XmlDeclaration

Copie la cible et la valeur de données à partir du nœud importé.

Copie la cible et la valeur de données à partir du nœud importé.

Tous les autres types de nœuds

Ces types de nœuds ne peuvent pas être importés.

Ces types de nœuds ne peuvent pas être importés.

RemarqueRemarque

Bien que les nœuds DocumentType puissent être importés, un document ne peut avoir qu'un seul DocumentType.Par conséquent, dès que vous avez importé le type de document, vous devez vous assurer, avant de l'insérer dans l'arborescence, que le document est dépourvu de type de document.Pour obtenir des informations sur la suppression de nœuds, voir Suppression de nœuds, de contenu et de valeurs d'un document XML.

Voir aussi

Concepts

DOM (Document Object Model) XML