XmlNode.CloneNode(Boolean) Metodo
Definizione
Importante
Alcune informazioni sono relative alla release non definitiva del prodotto, che potrebbe subire modifiche significative prima della release definitiva. Microsoft non riconosce alcuna garanzia, espressa o implicita, in merito alle informazioni qui fornite.
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. |