XmlNode.Clone Metoda

Definicja

Tworzy duplikat tego węzła.

public:
 virtual System::Xml::XmlNode ^ Clone();
public virtual System.Xml.XmlNode Clone ();
abstract member Clone : unit -> System.Xml.XmlNode
override this.Clone : unit -> System.Xml.XmlNode
Public Overridable Function Clone () As XmlNode

Zwraca

XmlNode

Sklonowany węzeł.

Przykłady

Poniższy przykład klonuje węzeł główny dokumentu XML.

#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;
   
   //Clone the root node.  The cloned node includes
   //child nodes. This is similar to calling CloneNode(true).
   XmlNode^ clone = root->Clone();
   Console::WriteLine( clone->OuterXml );
}
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;

    //Clone the root node.  The cloned node includes
    //child nodes. This is similar to calling CloneNode(true).
    XmlNode clone = root.Clone();
    Console.WriteLine(clone.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
        
        'Clone the root node.  The cloned node includes
        'child nodes. This is similar to calling CloneNode(true).
        Dim clone As XmlNode = root.Clone()
        Console.WriteLine(clone.OuterXml)
    End Sub
End Class

Uwagi

Klonowanie XmlElement kopiuje wszystkie atrybuty i ich wartości, w tym te wygenerowane przez procesor XML do reprezentowania atrybutów domyślnych. Ta metoda rekursywnie klonuje węzeł i poddrzewo pod nim.

Clone jest odpowiednikiem wywołania metody CloneNode(true).

W poniższej tabeli opisano konkretne zachowanie dla każdego XmlNodeTypeelementu .

XmlNodeType Klonowanie
Atrybut Klonuje węzeł atrybutu, w tym węzły podrzędne.
Cdata Klonuje węzeł CData, w tym jego zawartość danych.
Komentarz Klonuje węzeł komentarza, w tym jego zawartość tekstową.
Dokument Klonuje węzeł dokumentu, w tym wszystkie węzły podrzędne.
Documentfragment Klonuje węzeł fragmentu dokumentu, w tym wszystkie węzły podrzędne.
Documenttype Klonuje węzeł typu dokumentu.
Element Klonuje węzeł elementu, jego atrybuty i wszystkie węzły podrzędne.
Jednostka Nie można sklonować węzłów jednostki.
Odwołanie do jednostki Klonuje węzeł odwołania do jednostki. Tekst zastępczy nie jest uwzględniony.
Notacja Nie można sklonować węzłów notacji.
ProcessingInstruction Klonuje węzeł instrukcji przetwarzania, w tym jego element docelowy i dane.
ZnacząceWhitespace Klonuje znaczący węzeł odstępu, w tym jego wartość danych.
Tekst Klonuje węzeł tekstowy, w tym jego wartość danych.
Białe znaki Klonuje węzeł odstępu, w tym jego wartość danych.
Xmldeclaration 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.

Ta metoda jest rozszerzeniem firmy Microsoft do modelu obiektów dokumentów (DOM).

Dotyczy

Zobacz też