Freigeben über


XmlNode.CloneNode(Boolean) Methode

Definition

Erstellt ein Duplikat des Knotens, wenn er in einer abgeleiteten Klasse überschrieben wird.

public:
 abstract System::Xml::XmlNode ^ CloneNode(bool deep);
public abstract System.Xml.XmlNode CloneNode(bool deep);
abstract member CloneNode : bool -> System.Xml.XmlNode
Public MustOverride Function CloneNode (deep As Boolean) As XmlNode

Parameter

deep
Boolean

true rekursiv die Unterstruktur unter dem angegebenen Knoten zu klonen; false um nur den Knoten selbst zu klonen.

Gibt zurück

Der geklonte Knoten.

Ausnahmen

Aufrufen dieser Methode für einen Knotentyp, der nicht geklont werden kann.

Beispiele

Das folgende Beispiel zeigt den Unterschied zwischen einem tiefen und flachen Klon.

using System;
using System.IO;
using System.Xml;

public class Sample {

  public static void Main() {

    XmlDocument doc = new XmlDocument();
    doc.LoadXml("<book ISBN='1-861001-57-5'>" +
                "<title>Pride And Prejudice</title>" +
                "<price>19.95</price>" +
                "</book>");

    XmlNode root = doc.FirstChild;

    //Create a deep clone.  The cloned node
    //includes the child nodes.
    XmlNode deep = root.CloneNode(true);
    Console.WriteLine(deep.OuterXml);

    //Create a shallow clone.  The cloned node does not
    //include the child nodes, but does include its attribute.
    XmlNode shallow = root.CloneNode(false);
    Console.WriteLine(shallow.OuterXml);
  }
}
Option Explicit
Option Strict

Imports System.IO
Imports System.Xml

Public Class Sample
    
    Public Shared Sub Main()
        
        Dim doc As New XmlDocument()
        doc.LoadXml("<book ISBN='1-861001-57-5'>" & _
                    "<title>Pride And Prejudice</title>" & _
                    "<price>19.95</price>" & _
                    "</book>")
        
        Dim root As XmlNode = doc.FirstChild
        
        'Create a deep clone.  The cloned node 
        'includes the child nodes.
        Dim deep As XmlNode = root.CloneNode(True)
        Console.WriteLine(deep.OuterXml)
        
        'Create a shallow clone.  The cloned node does not 
        'include the child nodes, but does include its attribute.
        Dim shallow As XmlNode = root.CloneNode(False)
        Console.WriteLine(shallow.OuterXml)
    End Sub
End Class

Hinweise

Diese Methode dient als Kopierkonstruktor für Knoten. Der doppelte Knoten hat kein übergeordnetes Element (ParentNode gibt zurück null).

Die folgende Tabelle beschreibt das spezifische Verhalten für jedes XmlNodeType.

Xmlnodetype CloneNode(true) CloneNode(false)
Merkmal Klont den Attributknoten, einschließlich untergeordneter Knoten. Klont den Attributknoten, einschließlich untergeordneter Knoten.
CData Klont den CData-Knoten, einschließlich des Dateninhalts. Klont den CData-Knoten, einschließlich des Dateninhalts.
Kommentar Klont den Kommentarknoten, einschließlich des Textinhalts. Klont den Kommentarknoten, einschließlich des Textinhalts.
Dokument Klont den Dokumentknoten, einschließlich aller untergeordneten Knoten. Klont den Dokumentknoten.
DocumentFragment Klont den Dokumentfragmentknoten, einschließlich aller untergeordneten Knoten. Klont den Dokumentfragmentknoten.
Dokumenttyp Klont den Dokumenttypknoten. Klont den Dokumenttypknoten.
Element Klont den Elementknoten, seine Attribute und alle untergeordneten Knoten. Klont den Elementknoten und seine Attribute, einschließlich aller Standardattribute.
Entität Entitätsknoten können nicht geklont werden. Entitätsknoten können nicht geklont werden.
EntityReference Klont den Entitätsverweisknoten. Der Ersetzungstext ist nicht enthalten. Klont den Entitätsverweisknoten. Der Ersetzungstext ist nicht enthalten.
Notation Notationsknoten können nicht geklont werden. Notationsknoten können nicht geklont werden.
Verarbeitungsanweisung Klont den Verarbeitungsanweisungsknoten, einschließlich des Ziels und der Daten. Klont den Verarbeitungsanweisungsknoten, einschließlich des Ziels und der Daten.
Signifikantes Leerzeichen Klont den signifikanten Leerraumknoten, einschließlich des Datenwerts. Klont den signifikanten Leerraumknoten, einschließlich des Datenwerts.
Text Klont den Textknoten, einschließlich seines Datenwerts. Klont den Textknoten, einschließlich seines Datenwerts.
Leerzeichen Klont den Leerraumknoten, einschließlich des Datenwerts. Klont den Leerraumknoten, einschließlich des Datenwerts.
XML-Deklaration Klont den XmlDeclaration-Knoten, einschließlich des Datenwerts. Klont den XmlDeclaration-Knoten, einschließlich des Datenwerts.
Alle anderen Knotentypen. Diese Knotentypen können nicht geklont werden. Diese Knotentypen können nicht geklont werden.

Gilt für: