XmlNode.CloneNode(Boolean) Método

Definição

Cria um duplicado do nó, quando é sobreposto numa classe derivada.

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

Parâmetros

deep
Boolean

true clonar recursivamente a subárvore sob o nó especificado; false para clonar apenas o nó em si.

Devoluções

O nó clonado.

Exceções

Chamar este método num tipo de nó que não pode ser clonado.

Exemplos

O exemplo seguinte mostra a diferença entre um clone profundo e um clone superficial.

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

Observações

Este método serve como construtor de cópias para nós. O nó duplicado não tem pai (ParentNode devolve null).

A tabela seguinte descreve o comportamento específico para cada XmlNodeType.

XmlNodeType CloneNode(true) CloneNode(falso)
Attribute Clona o nó de atributo, incluindo os nós filhos. Clona o nó de atributo, incluindo os nós filhos.
CData Clona o nó CData, incluindo o seu conteúdo de dados. Clona o nó CData, incluindo o seu conteúdo de dados.
Comentário Clona o nó de comentário, incluindo o seu conteúdo textual. Clona o nó de comentário, incluindo o seu conteúdo textual.
Documento Clona o nó documento, incluindo quaisquer nós filhos. Clona o nó documento.
DocumentFragment Clona o nó fragmentado do documento, incluindo quaisquer nós filhos. Clona o nó do fragmento do documento.
Tipo de documento Clona o nó do tipo documento. Clona o nó do tipo documento.
Elemento Clona o nó elemento, os seus atributos e quaisquer nós filhos. Clona o nó elemento e os seus atributos, incluindo quaisquer atributos padrão.
Entity Os nós de entidade não podem ser clonados. Os nós de entidade não podem ser clonados.
EntityReference Clona o nó de referência da entidade. O texto de substituição não está incluído. Clona o nó de referência da entidade. O texto de substituição não está incluído.
Anotações Os nós de notação não podem ser clonados. Os nós de notação não podem ser clonados.
Instruções de processamento Clona o nó de instrução de processamento, incluindo o seu destino e dados. Clona o nó de instrução de processamento, incluindo o seu destino e dados.
Espaço branco significativo Clona o nó de espaço em branco significativo, incluindo o seu valor de dados. Clona o nó de espaço em branco significativo, incluindo o seu valor de dados.
Texto Clona o nó de texto, incluindo o seu valor de dados. Clona o nó de texto, incluindo o seu valor de dados.
Whitespace Clona o nó de espaço em branco, incluindo o seu valor de dados. Clona o nó de espaço em branco, incluindo o seu valor de dados.
Declaração XML Clona o nó XmlDeclaration, incluindo o seu valor de dados. Clona o nó XmlDeclaration, incluindo o seu valor de dados.
Todos os outros tipos de nós. Estes tipos de nós não podem ser clonados. Estes tipos de nós não podem ser clonados.

Aplica-se a