XmlDocument.CloneNode(Boolean) Methode
Definition
Wichtig
Einige Informationen beziehen sich auf Vorabversionen, die vor dem Release ggf. grundlegend überarbeitet werden. Microsoft übernimmt hinsichtlich der hier bereitgestellten Informationen keine Gewährleistungen, seien sie ausdrücklich oder konkludent.
Erstellt ein Duplikat dieses Knotens.
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
Parameter
- deep
- Boolean
true
, wenn die Teilstruktur unter dem angegebenen Knoten rekursiv geklont werden soll, false
, wenn nur der Knoten selbst geklont werden soll.
Gibt zurück
Der geklonte XmlDocument
-Knoten.
Beispiele
Das folgende Beispiel zeigt den Unterschied zwischen einem tiefen und flachen Klon.
#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
Hinweise
Diese Methode dient als Kopierkonstruktor für Knoten. Der geklonte Knoten hat kein übergeordnetes Element (ParentNode gibt zurück null
).
Wenn deep
ist true
, enthält der geklonte Knoten alle untergeordneten Knoten, andernfalls wird nur der XmlDocument
Knoten geklont. Sehen Sie sich die XmlNode.CloneNode -Methode an, um zu sehen, wie sich diese Methode bei anderen Knotentypen verhält.