XmlNode.CloneNode(Boolean) Método
Definição
Importante
Algumas informações se referem a produtos de pré-lançamento que podem ser substancialmente modificados antes do lançamento. A Microsoft não oferece garantias, expressas ou implícitas, das informações aqui fornecidas.
Cria uma duplicata do nó quando substituído em uma 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
para recursivamente clonar a subárvore abaixo do nó especificado; false
para clonar apenas o próprio nó.
Retornos
O nó clonado.
Exceções
Chamando esse método em um tipo de nó que não pode ser clonado.
Exemplos
O exemplo a seguir mostra a diferença entre um clone profundo e raso.
#using <System.Xml.dll>
using namespace System;
using namespace System::IO;
using namespace System::Xml;
int main()
{
XmlDocument^ doc = gcnew 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 );
}
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
Comentários
Esse método serve como um construtor de cópia para nós. O nó duplicado não tem pai (ParentNode retorna null
).
A tabela a seguir descreve o comportamento específico para cada XmlNodeType.
XmlNodeType | CloneNode(true) | CloneNode(false) |
---|---|---|
Atributo | Clona o nó de atributo, incluindo nós filho. | Clona o nó de atributo, incluindo nós filho. |
CDATA | Clona o nó CData, incluindo seu conteúdo de dados. | Clona o nó CData, incluindo seu conteúdo de dados. |
Comentário | Clona o nó de comentário, incluindo seu conteúdo de texto. | Clona o nó de comentário, incluindo seu conteúdo de texto. |
Documento | Clona o nó do documento, incluindo quaisquer nós filho. | Clona o nó do documento. |
DocumentFragment | Clona o nó de fragmento do documento, incluindo quaisquer nós filho. | Clona o nó de fragmento do documento. |
DocumentType | Clona o nó de tipo de documento. | Clona o nó de tipo de documento. |
Elemento | Clona o nó de elemento, seus atributos e quaisquer nós filho. | Clona o nó de elemento e seus atributos, incluindo todos os atributos padrão. |
Entidade | Não é possível clonar nós de entidade. | Não é possível clonar nós de entidade. |
EntityReference | Clona o nó de referência da entidade. O texto de substituição não é incluído. | Clona o nó de referência da entidade. O texto de substituição não é incluído. |
Notation | Não é possível clonar nós de notação. | Não é possível clonar nós de notação. |
ProcessingInstruction | Clona o nó de instrução de processamento, incluindo seu destino e dados. | Clona o nó de instrução de processamento, incluindo seu destino e dados. |
SignificantWhitespace | Clona o nó de espaço em branco significativo, incluindo seu valor de dados. | Clona o nó de espaço em branco significativo, incluindo seu valor de dados. |
Texto | Clona o nó de texto, incluindo seu valor de dados. | Clona o nó de texto, incluindo seu valor de dados. |
Espaço em branco | Clona o nó de espaço em branco, incluindo seu valor de dados. | Clona o nó de espaço em branco, incluindo seu valor de dados. |
XmlDeclaration | Clona o nó XmlDeclaration, incluindo seu valor de dados. | Clona o nó XmlDeclaration, incluindo seu valor de dados. |
Todos os outros tipos de nó. | Esses tipos de nó não podem ser clonados. | Esses tipos de nó não podem ser clonados. |