XmlDocumentFragment.CloneNode(Boolean) Metoda
Definice
Důležité
Některé informace platí pro předběžně vydaný produkt, který se může zásadně změnit, než ho výrobce nebo autor vydá. Microsoft neposkytuje žádné záruky, výslovné ani předpokládané, týkající se zde uváděných informací.
Vytvoří duplikát tohoto uzlu.
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
rekurzivně klonovat podstrom pod zadaným uzlem; false
pro klonování pouze samotného uzlu.
Návraty
Klonovaný uzel.
Příklady
Následující příklad ukazuje rozdíl mezi hlubokým a mělkým 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( "<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
Poznámky
CloneNode
slouží jako konstruktor kopírování pro uzly. Pokud chcete zjistit, jak se tato metoda chová s jinými typy uzlů, projděte si téma XmlNode.CloneNode.
Klonovaný uzel nemá žádný nadřazený uzel (ParentNode vrátí null
).