XmlNode.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 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. |