XmlDocument.CloneNode(Boolean) Metoda
Definicja
Ważne
Niektóre informacje odnoszą się do produktu w wersji wstępnej, który może zostać znacząco zmodyfikowany przed wydaniem. Firma Microsoft nie udziela żadnych gwarancji, jawnych lub domniemanych, w odniesieniu do informacji podanych w tym miejscu.
Tworzy duplikat tego węzła.
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
Parametry
- deep
- Boolean
true aby rekursywnie sklonować poddrzewo pod określonym węzłem; false aby sklonować tylko sam węzeł.
Zwraca
Sklonowany XmlDocument węzeł.
Przykłady
W poniższym przykładzie pokazano różnicę między głębokim i płytkim klonem.
#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( "<book genre='novel' ISBN='1-861001-57-5'><title>Pride And Prejudice</title></book>" );
//Create a deep clone. The cloned node
//includes the child node.
XmlDocument^ deep = dynamic_cast<XmlDocument^>(doc->CloneNode( true ));
Console::WriteLine( deep->ChildNodes->Count );
//Create a shallow clone. The cloned node does not
//include the child node.
XmlDocument^ shallow = dynamic_cast<XmlDocument^>(doc->CloneNode( false ));
Console::WriteLine( "{0}{1}", shallow->Name, shallow->OuterXml );
Console::WriteLine( shallow->ChildNodes->Count );
}
using System;
using System.IO;
using System.Xml;
public class Sample
{
public static void Main()
{
//Create the XmlDocument.
XmlDocument doc = new XmlDocument();
doc.LoadXml("<book genre='novel' ISBN='1-861001-57-5'>" +
"<title>Pride And Prejudice</title>" +
"</book>");
//Create a deep clone. The cloned node
//includes the child node.
XmlDocument deep = (XmlDocument) doc.CloneNode(true);
Console.WriteLine(deep.ChildNodes.Count);
//Create a shallow clone. The cloned node does not
//include the child node.
XmlDocument shallow = (XmlDocument) doc.CloneNode(false);
Console.WriteLine(shallow.Name + shallow.OuterXml);
Console.WriteLine(shallow.ChildNodes.Count);
}
}
Option Explicit
Option Strict
Imports System.IO
Imports System.Xml
Public Class Sample
Public Shared Sub Main()
'Create the XmlDocument.
Dim doc As New XmlDocument()
doc.LoadXml("<book genre='novel' ISBN='1-861001-57-5'>" & _
"<title>Pride And Prejudice</title>" & _
"</book>")
'Create a deep clone. The cloned node
'includes the child node.
Dim deep As XmlDocument = CType(doc.CloneNode(True), XmlDocument)
Console.WriteLine(deep.ChildNodes.Count)
'Create a shallow clone. The cloned node does not
'include the child node.
Dim shallow As XmlDocument = CType(doc.CloneNode(False), XmlDocument)
Console.WriteLine(shallow.Name + shallow.OuterXml)
Console.WriteLine(shallow.ChildNodes.Count)
End Sub
End Class
Uwagi
Ta metoda służy jako konstruktor kopiowania dla węzłów. Sklonowany węzeł nie ma elementu nadrzędnego (ParentNode zwraca nullwartość ).
Jeśli deep jest to true, sklonowany węzeł zawiera wszystkie węzły podrzędne, w przeciwnym razie sklonowany jest tylko XmlDocument węzeł. Zobacz metodę XmlNode.CloneNode , aby zobaczyć, jak ta metoda zachowuje się w innych typach węzłów.