XmlDocument.CloneNode(Boolean) XmlDocument.CloneNode(Boolean) XmlDocument.CloneNode(Boolean) XmlDocument.CloneNode(Boolean) Method

Definition

Erstellt ein Duplikat dieses Knotens.Creates a duplicate of this node.

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 Boolean Boolean Boolean

true, wenn die Teilstruktur unter dem angegebenen Knoten rekursiv geklont werden soll, false, wenn nur der Knoten selbst geklont werden soll.true to recursively clone the subtree under the specified node; false to clone only the node itself.

Gibt zurück

Der geklonte XmlDocument-Knoten.The cloned XmlDocument node.

Beispiele

Das folgende Beispiel zeigt den Unterschied zwischen einem tiefen und einem flachen Klon.The following example shows the difference between a deep and shallow clone.

#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.This method serves as a copy constructor for nodes. Der geklonte Knoten besitzt kein überParentNode geordnetes nullElement (gibt zurück).The cloned node has no parent (ParentNode returns null).

Wenn deep XmlDocument ist true, enthält der geklonte Knoten alle untergeordneten Knoten; andernfalls wird nur der Knoten geklont.If deep is true, the cloned node includes all the child nodes, otherwise only the XmlDocument node is cloned. Sehen Sie XmlNode.CloneNode sich die-Methode an, um zu sehen, wie sich diese Methode für andere Knoten TypenSee the XmlNode.CloneNode method to see how this method behaves on other node types.

Gilt für: