Afficher en anglais

Partage via


XmlNode.CloneNode(Boolean) Méthode

Définition

Crée un doublon du nœud en cas de substitution dans une classe dérivée.

C#
public abstract System.Xml.XmlNode CloneNode (bool deep);

Paramètres

deep
Boolean

true pour cloner récursivement la sous-arborescence sous le nœud spécifié ; false pour cloner seulement le nœud lui-même.

Retours

XmlNode

Nœud cloné.

Exceptions

Appel de cette méthode sur un type de nœud ne pouvant pas être cloné.

Exemples

L’exemple suivant montre la différence entre un clone profond et peu profond.

C#
using System;
using System.IO;
using System.Xml;

public class Sample {

  public static void Main() {

    XmlDocument doc = new XmlDocument();
    doc.LoadXml("<book ISBN='1-861001-57-5'>" +
                "<title>Pride And Prejudice</title>" +
                "<price>19.95</price>" +
                "</book>");

    XmlNode root = doc.FirstChild;

    //Create a deep clone.  The cloned node
    //includes the child nodes.
    XmlNode deep = root.CloneNode(true);
    Console.WriteLine(deep.OuterXml);

    //Create a shallow clone.  The cloned node does not
    //include the child nodes, but does include its attribute.
    XmlNode shallow = root.CloneNode(false);
    Console.WriteLine(shallow.OuterXml);
  }
}

Remarques

Cette méthode sert de constructeur de copie pour les nœuds. Le nœud en double n’a pas de parent (ParentNode retourne null).

Le tableau suivant décrit le comportement spécifique pour chaque XmlNodeType.

XmlNodeType CloneNode(true) CloneNode(false)
Attribut Clone le nœud d’attribut, y compris les nœuds enfants. Clone le nœud d’attribut, y compris les nœuds enfants.
CData Clone le nœud CData, y compris son contenu de données. Clone le nœud CData, y compris son contenu de données.
Commentaire Clone le nœud de commentaire, y compris son contenu texte. Clone le nœud de commentaire, y compris son contenu texte.
Document Clone le nœud de document, y compris les nœuds enfants. Clone le nœud de document.
DocumentFragment Clone le nœud de fragment de document, y compris tous les nœuds enfants. Clone le nœud de fragment de document.
DocumentType ; Clone le nœud de type de document. Clone le nœud de type de document.
Élément Clone le nœud d’élément, ses attributs et tous les nœuds enfants. Clone le nœud d’élément et ses attributs, y compris tous les attributs par défaut.
Entité Les nœuds d'entité ne peuvent pas être clonés. Les nœuds d'entité ne peuvent pas être clonés.
EntityReference Clone le nœud de référence d’entité. Le texte de remplacement n'est pas inclus. Clone le nœud de référence d’entité. Le texte de remplacement n'est pas inclus.
Notation Les nœuds de notation ne peuvent pas être clonés. Les nœuds de notation ne peuvent pas être clonés.
ProcessingInstruction ; Clone le nœud d’instruction de traitement, y compris sa cible et ses données. Clone le nœud d’instruction de traitement, y compris sa cible et ses données.
SignificantWhitespace Clone le nœud d’espace blanc significatif, y compris sa valeur de données. Clone le nœud d’espace blanc significatif, y compris sa valeur de données.
Texte Clone le nœud de texte, y compris sa valeur de données. Clone le nœud de texte, y compris sa valeur de données.
Espace blanc Clone le nœud d’espace blanc, y compris sa valeur de données. Clone le nœud d’espace blanc, y compris sa valeur de données.
XmlDeclaration Clone le nœud XmlDeclaration, y compris sa valeur de données. Clone le nœud XmlDeclaration, y compris sa valeur de données.
Tous les autres types de nœuds. Ces types de nœuds ne peuvent pas être clonés. Ces types de nœuds ne peuvent pas être clonés.

S’applique à

Produit Versions
.NET Core 1.0, Core 1.1, Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7
.NET Framework 1.1, 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8
.NET Standard 2.0, 2.1
UWP 10.0