XmlDocumentFragment.CloneNode(Boolean) Método
Definición
Importante
Parte de la información hace referencia a la versión preliminar del producto, que puede haberse modificado sustancialmente antes de lanzar la versión definitiva. Microsoft no otorga ninguna garantía, explícita o implícita, con respecto a la información proporcionada aquí.
Crea un duplicado de este nodo.
public:
override System::Xml::XmlNode ^ CloneNode(bool deep);
public override System.Xml.XmlNode CloneNode (bool deep);
override this.CloneNode : bool -> System.Xml.XmlNode
Public Overrides Function CloneNode (deep As Boolean) As XmlNode
Parámetros
- deep
- Boolean
true
para clonar de forma recursiva el subárbol del nodo especificado; false
solo para clonar el nodo en sí.
Devoluciones
Nodo clonado.
Ejemplos
En el ejemplo siguiente se muestra la diferencia entre un clon profundo y superficial.
#using <System.Xml.dll>
using namespace System;
using namespace System::IO;
using namespace System::Xml;
int main()
{
// Create the XmlDocument.
XmlDocument^ doc = gcnew XmlDocument;
doc->LoadXml( "<items/>" );
// Create a document fragment.
XmlDocumentFragment^ docFrag = doc->CreateDocumentFragment();
// Set the contents of the document fragment.
docFrag->InnerXml = "<item>widget</item>";
// Create a deep clone. The cloned node
// includes child nodes.
XmlNode^ deep = docFrag->CloneNode( true );
Console::WriteLine( "Name: {0}", deep->Name );
Console::WriteLine( "OuterXml: {0}", deep->OuterXml );
// Create a shallow clone. The cloned node does
// not include any child nodes.
XmlNode^ shallow = docFrag->CloneNode( false );
Console::WriteLine( "Name: {0}", shallow->Name );
Console::WriteLine( "OuterXml: {0}", shallow->OuterXml );
}
using System;
using System.IO;
using System.Xml;
public class Sample
{
public static void Main()
{
// Create the XmlDocument.
XmlDocument doc = new XmlDocument();
doc.LoadXml("<items/>");
// Create a document fragment.
XmlDocumentFragment docFrag = doc.CreateDocumentFragment();
// Set the contents of the document fragment.
docFrag.InnerXml ="<item>widget</item>";
// Create a deep clone. The cloned node
// includes child nodes.
XmlNode deep = docFrag.CloneNode(true);
Console.WriteLine("Name: " + deep.Name);
Console.WriteLine("OuterXml: " + deep.OuterXml);
// Create a shallow clone. The cloned node does
// not include any child nodes.
XmlNode shallow = docFrag.CloneNode(false);
Console.WriteLine("Name: " + shallow.Name);
Console.WriteLine("OuterXml: " + shallow.OuterXml);
}
}
Imports System.IO
Imports System.Xml
public class Sample
public shared sub Main()
' Create the XmlDocument.
Dim doc as XmlDocument = new XmlDocument()
doc.LoadXml("<items/>")
' Create a document fragment.
Dim docFrag as XmlDocumentFragment = doc.CreateDocumentFragment()
' Set the contents of the document fragment.
docFrag.InnerXml ="<item>widget</item>"
' Create a deep clone. The cloned node
' includes child nodes.
Dim deep as XmlNode = docFrag.CloneNode(true)
Console.WriteLine("Name: " + deep.Name)
Console.WriteLine("OuterXml: " + deep.OuterXml)
' Create a shallow clone. The cloned node does
' not include any child nodes.
Dim shallow as XmlNode = docFrag.CloneNode(false)
Console.WriteLine("Name: " + shallow.Name)
Console.WriteLine("OuterXml: " + shallow.OuterXml)
end sub
end class
Comentarios
CloneNode
actúa como constructor de copia para los nodos. Para ver cómo se comporta este método con otros tipos de nodo, consulte XmlNode.CloneNode.
El nodo clonado no tiene ningún elemento primario (ParentNode devuelve null
).