XmlNode.CloneNode(Boolean) Metoda
Definicja
Ważne
Niektóre informacje odnoszą się do produktu w wersji wstępnej, który może zostać znacząco zmodyfikowany przed wydaniem. Firma Microsoft nie udziela żadnych gwarancji, jawnych lub domniemanych, w odniesieniu do informacji podanych w tym miejscu.
Tworzy duplikat węzła, gdy zostanie zastąpiony w klasie pochodnej.
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
Parametry
- deep
- Boolean
true aby rekursywnie sklonować poddrzewo w określonym węźle; false aby sklonować tylko sam węzeł.
Zwraca
Sklonowany węzeł.
Wyjątki
Wywoływanie tej metody w typie węzła, którego nie można sklonować.
Przykłady
W poniższym przykładzie przedstawiono różnicę między głębokim i płytkim klonem.
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
Uwagi
Ta metoda służy jako konstruktor kopiujący dla węzłów. Zduplikowany węzeł nie ma elementu nadrzędnego (ParentNode zwraca wartość null).
W poniższej tabeli opisano konkretne zachowanie dla każdego XmlNodeTypeelementu .
| XmlNodeType | CloneNode(true) | CloneNode(false) |
|---|---|---|
| Atrybut | Klonuje węzeł atrybutu, w tym węzły podrzędne. | Klonuje węzeł atrybutu, w tym węzły podrzędne. |
| CData | Klonuje węzeł CData, w tym jego zawartość danych. | Klonuje węzeł CData, w tym jego zawartość danych. |
| Komentarz | Klonuje węzeł komentarza, w tym jego zawartość tekstową. | Klonuje węzeł komentarza, w tym jego zawartość tekstową. |
| Dokument | Klonuje węzeł dokumentu, w tym wszystkie węzły podrzędne. | Klonuje węzeł dokumentu. |
| Documentfragment | Klonuje węzeł fragmentu dokumentu, w tym wszystkie węzły podrzędne. | Klonuje węzeł fragmentu dokumentu. |
| Typ dokumentu | Klonuje węzeł typu dokumentu. | Klonuje węzeł typu dokumentu. |
| Składnik | Klonuje węzeł elementu, jego atrybuty i wszystkie węzły podrzędne. | Klonuje węzeł elementu i jego atrybuty, w tym wszystkie atrybuty domyślne. |
| Encja | Nie można sklonować węzłów jednostki. | Nie można sklonować węzłów jednostki. |
| EntityReference | Klonuje węzeł odwołania do jednostki. Tekst zastępczy nie jest dołączony. | Klonuje węzeł odwołania do jednostki. Tekst zastępczy nie jest dołączony. |
| Notation | Nie można sklonować węzłów notacji. | Nie można sklonować węzłów notacji. |
| Instrukcja przetwarzania | Klonuje węzeł instrukcji przetwarzania, w tym jego element docelowy i dane. | Klonuje węzeł instrukcji przetwarzania, w tym jego element docelowy i dane. |
| Znacząca Biała Przestrzeń | Klonuje znaczący węzeł odstępu, w tym jego wartość danych. | Klonuje znaczący węzeł odstępu, w tym jego wartość danych. |
| Tekst | Klonuje węzeł tekstowy, w tym jego wartość danych. | Klonuje węzeł tekstowy, w tym jego wartość danych. |
| Białe znaki | Klonuje węzeł biały, w tym jego wartość danych. | Klonuje węzeł biały, w tym jego wartość danych. |
| Deklaracja XML | Klonuje węzeł XmlDeclaration, w tym jego wartość danych. | Klonuje węzeł XmlDeclaration, w tym jego wartość danych. |
| Wszystkie inne typy węzłów. | Nie można sklonować tych typów węzłów. | Nie można sklonować tych typów węzłów. |