Condividi tramite


XmlNode.CloneNode(Boolean) Metodo

Definizione

Crea un duplicato del nodo, quando sottoposto a override in una classe derivata.

public:
 abstract System::Xml::XmlNode ^ CloneNode(bool deep);
public abstract System.Xml.XmlNode CloneNode(bool deep);
abstract member CloneNode : bool -> System.Xml.XmlNode
Public MustOverride Function CloneNode (deep As Boolean) As XmlNode

Parametri

deep
Boolean

true per clonare in modo ricorsivo il sottoalbero sotto il nodo specificato; false per clonare solo il nodo stesso.

Restituisce

Nodo clonato.

Eccezioni

Chiamata di questo metodo su un tipo di nodo che non può essere clonato.

Esempio

L'esempio seguente mostra la differenza tra un clone profondo e superficiale.

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);
  }
}
Option Explicit
Option Strict

Imports System.IO
Imports System.Xml

Public Class Sample
    
    Public Shared Sub Main()
        
        Dim doc As New XmlDocument()
        doc.LoadXml("<book ISBN='1-861001-57-5'>" & _
                    "<title>Pride And Prejudice</title>" & _
                    "<price>19.95</price>" & _
                    "</book>")
        
        Dim root As XmlNode = doc.FirstChild
        
        'Create a deep clone.  The cloned node 
        'includes the child nodes.
        Dim deep As XmlNode = 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.
        Dim shallow As XmlNode = root.CloneNode(False)
        Console.WriteLine(shallow.OuterXml)
    End Sub
End Class

Commenti

Questo metodo funge da costruttore di copia per i nodi. Il nodo duplicato non ha un elemento padre (ParentNode restituisce null).

Nella tabella seguente viene descritto il comportamento specifico per ogni XmlNodeTypeoggetto .

Xmlnodetype CloneNode(true) CloneNode(false)
Attribute Clona il nodo dell'attributo, inclusi i nodi figlio. Clona il nodo dell'attributo, inclusi i nodi figlio.
CData Clona il nodo CData, incluso il contenuto dei dati. Clona il nodo CData, incluso il contenuto dei dati.
Commento Clona il nodo del commento, incluso il relativo contenuto di testo. Clona il nodo del commento, incluso il relativo contenuto di testo.
Documento Clona il nodo del documento, inclusi tutti i nodi figlio. Clona il nodo del documento.
DocumentFragment Clona il nodo del frammento di documento, inclusi tutti i nodi figlio. Clona il nodo del frammento di documento.
Tipo di documento Clona il nodo del tipo di documento. Clona il nodo del tipo di documento.
Elemento Clona il nodo dell'elemento, i relativi attributi e tutti i nodi figlio. Clona il nodo dell'elemento e i relativi attributi, inclusi gli attributi predefiniti.
Entità I nodi di entità non possono essere clonati. I nodi di entità non possono essere clonati.
EntityReference Clona il nodo di riferimento dell'entità. Il testo sostitutivo non è incluso. Clona il nodo di riferimento dell'entità. Il testo sostitutivo non è incluso.
Notazione Non è possibile clonare i nodi di notazione. Non è possibile clonare i nodi di notazione.
Istruzione di Elaborazione Clona il nodo dell'istruzione di elaborazione, inclusi i dati e la destinazione. Clona il nodo dell'istruzione di elaborazione, inclusi i dati e la destinazione.
SignificantWhitespace Clona il nodo dello spazio vuoto significativo, incluso il valore dei dati. Clona il nodo dello spazio vuoto significativo, incluso il valore dei dati.
Text Clona il nodo di testo, incluso il relativo valore di dati. Clona il nodo di testo, incluso il relativo valore di dati.
Spazi vuoti Clona il nodo dello spazio vuoto, incluso il relativo valore di dati. Clona il nodo dello spazio vuoto, incluso il relativo valore di dati.
XmlDeclaration Clona il nodo XmlDeclaration, incluso il relativo valore di dati. Clona il nodo XmlDeclaration, incluso il relativo valore di dati.
Tutti gli altri tipi di nodo. Questi tipi di nodo non possono essere clonati. Questi tipi di nodo non possono essere clonati.

Si applica a