XmlNode.Clone Метод

Определение

Создает дубликат этого узла.

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

Возвращаемое значение

XmlNode

Точная копия узла.

Примеры

В следующем примере клонирует корневой узел 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

Комментарии

Клонирование XmlElement копирует все атрибуты и их значения, включая те, которые создаются обработчиком XML для представления атрибутов по умолчанию. Этот метод рекурсивно клонирует узел и поддерев под ним.

Clone эквивалентно вызову CloneNode(true).

В следующей таблице описано конкретное поведение для каждого из них XmlNodeType.

Тип узла XML Клонировать
Атрибут Клонирует узел атрибута, включая дочерние узлы.
CData Клонирует узел CData, включая его содержимое данных.
Добавление примечаний Клонирует узел комментариев, включая его текстовое содержимое.
Document Клонирует узел документа, включая все дочерние узлы.
DocumentFragment Клонирует узел фрагмента документа, включая все дочерние узлы.
DocumentType; Клонирует узел типа документа.
Элемент Клонирует узел элемента, его атрибуты и все дочерние узлы.
Объект Невозможно получить точные копии узлов сущности.
EntityReference Клонирует узел ссылки на сущность. Текст замены не включается.
Notation Невозможно создать точную копию узлов представлений.
ProcessingInstruction; Клонирует узел инструкций по обработке, включая его целевой объект и данные.
SignificantWhitespace Клонирует значительный узел пробела, включая его значение данных.
Text Клонирует текстовый узел, включая его значение данных.
Whitespace Клонирует узел пробела, включая его значение данных.
XmlDeclaration Клонирует узел XmlDeclaration, включая его значение данных.
Все остальные типы узлов. Эти типы узлов нельзя клонировать.

Этот метод является расширением Майкрософт для модели объектов документов (DOM).

Применяется к

См. также раздел