XmlNode.CloneNode(Boolean) Metod
Definition
Viktigt
En del information gäller för förhandsversionen av en produkt och kan komma att ändras avsevärt innan produkten blir allmänt tillgänglig. Microsoft lämnar inga garantier, uttryckliga eller underförstådda, avseende informationen som visas här.
Skapar en dubblett av noden när den åsidosättas i en härledd klass.
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
Parametrar
- deep
- Boolean
true för att rekursivt klona underträdet under den angivna noden. false för att endast klona själva noden.
Returer
Den klonade noden.
Undantag
Anropa den här metoden på en nodtyp som inte kan klonas.
Exempel
I följande exempel visas skillnaden mellan en djup och ytlig 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
Kommentarer
Den här metoden fungerar som en kopieringskonstruktor för noder. Den duplicerade noden har ingen överordnad (ParentNode returnerar null).
I följande tabell beskrivs det specifika beteendet för varje XmlNodeType.
| XmlNodeType | CloneNode(true) | CloneNode(false) |
|---|---|---|
| Attribute | Klonar attributnoden, inklusive underordnade noder. | Klonar attributnoden, inklusive underordnade noder. |
| CData | Klonar CData-noden, inklusive dess datainnehåll. | Klonar CData-noden, inklusive dess datainnehåll. |
| Comment | Klonar kommentarsnoden, inklusive dess textinnehåll. | Klonar kommentarsnoden, inklusive dess textinnehåll. |
| Dokument | Klonar dokumentnoden, inklusive eventuella underordnade noder. | Klonar dokumentnoden. |
| DocumentFragment | Klonar noden för dokumentfragmentet, inklusive eventuella underordnade noder. | Klonar noden för dokumentfragmentet. |
| Dokumenttyp | Klonar noden för dokumenttyp. | Klonar noden för dokumenttyp. |
| Element | Klonar elementnoden, dess attribut och eventuella underordnade noder. | Klonar elementnoden och dess attribut, inklusive eventuella standardattribut. |
| Entity | Entitetsnoder kan inte klonas. | Entitetsnoder kan inte klonas. |
| EntityReference | Klonar entitetsreferensnoden. Ersättningstexten ingår inte. | Klonar entitetsreferensnoden. Ersättningstexten ingår inte. |
| Notation | Notationsnoder kan inte klonas. | Notationsnoder kan inte klonas. |
| bearbetningsinstruktion | Klonar bearbetningsinstruktionsnoden, inklusive dess mål och data. | Klonar bearbetningsinstruktionsnoden, inklusive dess mål och data. |
| SignificantWhitespace | Klonar den betydande noden för tomt utrymme, inklusive dess datavärde. | Klonar den betydande noden för tomt utrymme, inklusive dess datavärde. |
| Text | Klonar textnoden, inklusive dess datavärde. | Klonar textnoden, inklusive dess datavärde. |
| Whitespace | Klonar noden för tomt utrymme, inklusive dess datavärde. | Klonar noden för tomt utrymme, inklusive dess datavärde. |
| XML-deklaration | Klonar XmlDeclaration-noden, inklusive dess datavärde. | Klonar XmlDeclaration-noden, inklusive dess datavärde. |
| Alla andra nodtyper. | Dessa nodtyper kan inte klonas. | Dessa nodtyper kan inte klonas. |