XmlNode.CloneNode(Boolean) Método
Definição
Importante
Algumas informações dizem respeito a um produto pré-lançado que pode ser substancialmente modificado antes de ser lançado. A Microsoft não faz garantias, de forma expressa ou implícita, em relação à informação aqui apresentada.
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. |