XmlNode.CloneNode-Methode
Erstellt beim Überschreiben in einer abgeleiteten Klasse ein Duplikat des Knotens.
Namespace: System.Xml
Assembly: System.Xml (in system.xml.dll)
Syntax
'Declaration
Public MustOverride Function CloneNode ( _
deep As Boolean _
) As XmlNode
'Usage
Dim instance As XmlNode
Dim deep As Boolean
Dim returnValue As XmlNode
returnValue = instance.CloneNode(deep)
public abstract XmlNode CloneNode (
bool deep
)
public:
virtual XmlNode^ CloneNode (
bool deep
) abstract
public abstract XmlNode CloneNode (
boolean deep
)
public abstract function CloneNode (
deep : boolean
) : XmlNode
Parameter
- deep
true, wenn die Teilstruktur unter dem angegebenen Knoten rekursiv geklont werden soll, false, wenn nur der Knoten selbst geklont werden soll.
Rückgabewert
Der geklonte Knoten.
Ausnahmen
Ausnahmetyp | Bedingung |
---|---|
Aufruf dieser Methode für einen Knotentyp, der nicht geklont werden kann. |
Hinweise
Diese Methode wird als Kopierkonstruktor für Knoten verwendet. Für das Knotenduplikat ist kein übergeordnetes Element vorhanden (ParentNode gibt NULL (Nothing in Visual Basic) zurück).
In der folgenden Tabelle wird das spezifische Verhalten für jeden XmlNodeType beschrieben.
XmlNodeType |
CloneNode(true) |
CloneNode(false) |
---|---|---|
Attribute |
Klont den Attributknoten einschließlich untergeordneter Knoten. |
Klont den Attributknoten einschließlich untergeordneter Knoten. |
CData |
Klont den CData-Knoten einschließlich dessen Dateninhalts. |
Klont den CData-Knoten einschließlich dessen Dateninhalts. |
Comment |
Klont den Kommentarknoten einschließlich dessen Textinhalts. |
Klont den Kommentarknoten einschließlich dessen Textinhalts. |
Document |
Klont den Dokumentknoten einschließlich sämtlicher untergeordneter Knoten. |
Klont den Dokumentknoten. |
DocumentFragment |
Klont den Dokumentfragmentknoten einschließlich sämtlicher untergeordneter Knoten. |
Klont den Dokumentfragmentknoten. |
DocumentType |
Klont den Dokumenttypknoten. |
Klont den Dokumenttypknoten. |
Element |
Klont den Elementknoten, dessen Attribute und sämtliche untergeordneten Knoten. |
Klont den Elementknoten und dessen Attribute einschließlich sämtlicher Standardattribute. |
Entity |
Entitätsknoten können nicht geklont werden. |
Entitätsknoten können nicht geklont werden. |
EntityReference |
Klont den Entitätsverweisknoten. Der Ersetzungstext ist davon nicht betroffen. |
Klont den Entitätsverweisknoten. Der Ersetzungstext ist davon nicht betroffen. |
Notation |
Notationsknoten können nicht geklont werden. |
Notationsknoten können nicht geklont werden. |
ProcessingInstruction |
Klont den Verarbeitungsanweisungsknoten, einschließlich Ziel und Daten. |
Klont den Verarbeitungsanweisungsknoten, einschließlich Ziel und Daten. |
SignificantWhitespace |
Klont den Knoten für signifikanten Leerraum, einschließlich dessen Dateninhalts. |
Klont den Knoten für signifikanten Leerraum, einschließlich dessen Dateninhalts. |
Text |
Klont den Textknoten einschließlich des zugehörigen Datenwerts. |
Klont den Textknoten einschließlich des zugehörigen Datenwerts. |
Whitespace |
Klont den Leerraumknoten einschließlich dessen Dateninhalts. |
Klont den Leerraumknoten einschließlich dessen Dateninhalts. |
XmlDeclaration |
Klont den Knoten für die XML-Deklaration einschließlich des zugehörigen Datenwerts. |
Klont den Knoten für die XML-Deklaration einschließlich des zugehörigen Datenwerts. |
Alle anderen Knotentypen. |
Diese Knotentypen können nicht geklont werden. |
Diese Knotentypen können nicht geklont werden. |
Beispiel
Im folgenden Beispiel wird der Unterschied zwischen einem tiefen und einem flachen Klon veranschaulicht.
Option Explicit
Option Strict
Imports System
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 'Main
End Class 'Sample
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);
}
}
#using <System.Xml.dll>
using namespace System;
using namespace System::IO;
using namespace System::Xml;
int main()
{
XmlDocument^ doc = gcnew 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 );
}
import System.*;
import System.IO.*;
import System.Xml.*;
public class Sample
{
public static void main(String[] args)
{
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.get_FirstChild();
//Create a deep clone. The cloned node
//includes the child nodes.
XmlNode deep = root.CloneNode(true);
Console.WriteLine(deep.get_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.get_OuterXml());
} //main
} //Sample
Plattformen
Windows 98, Windows 2000 SP4, Windows CE, Windows Millennium Edition, Windows Mobile für Pocket PC, Windows Mobile für Smartphone, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition
.NET Framework unterstützt nicht alle Versionen sämtlicher Plattformen. Eine Liste der unterstützten Versionen finden Sie unter Systemanforderungen.
Versionsinformationen
.NET Framework
Unterstützt in: 2.0, 1.1, 1.0
.NET Compact Framework
Unterstützt in: 2.0, 1.0