XmlNode.Clone Метод

Определение

Создает дубликат этого узла.Creates a duplicate of this node.

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

Возвраты

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

Примеры

В следующем примере создается точная копия корневого узла XML-документа.The following example clones the root node of the XML document.

#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 для представления атрибутов по умолчанию.Cloning an XmlElement copies all attributes and their values, including those generated by the XML processor to represent defaulted attributes. Этот метод рекурсивно создает точную копию узла и поддерева под ним.This method recursively clones the node and the subtree underneath it.

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

В следующей таблице описывается конкретное поведение для каждого XmlNodeType.The following table describes the specific behavior for each XmlNodeType.

Тип узла XMLXmlNodeType КлонироватьClone
АтрибутAttribute Создает точную копию узла атрибута, включая дочерние узлы.Clones the attribute node, including child nodes.
КорпорацияCData Создает точную копию узла CData, включая его содержимое данных.Clones the CData node, including its data content.
КомментарийComment Создает точную копию узла комментария, включая его текстовое содержимое.Clones the comment node, including its text content.
DocumentDocument Создает точную копию узла документа, включая все дочерние узлы.Clones the document node, including any child nodes.
DocumentFragmentDocumentFragment Создает точную копию узла фрагмента документа, включая все дочерние узлы.Clones the document fragment node, including any child nodes.
DocumentType;DocumentType Создает точную копию узла типа документа.Clones the document type node.
ЭлементElement Создает точную копию узла элемента, его атрибутов и всех дочерних узлов.Clones the element node, its attributes, and any child nodes.
ОбъектEntity Невозможно получить точные копии узлов сущности.Entity nodes cannot be cloned.
EntityReferenceEntityReference Создает точную копию узла ссылки на сущность.Clones the entity reference node. Текст замены не включается.The replacement text is not included.
NotationNotation Невозможно создать точную копию узлов представлений.Notation nodes cannot be cloned.
ProcessingInstruction;ProcessingInstruction Создает точную копию узла инструкции по обработке, включая его целевой объект и данные.Clones the processing instruction node, including its target and data.
SignificantWhitespaceSignificantWhitespace Создает точную копию узла значащих пробелов, включая его значение данных.Clones the significant white space node, including its data value.
TextText Создает точную копию текстового узла, включая его значение данных.Clones the text node, including its data value.
WhitespaceWhitespace Создает точную копию узла пробела, включая его значение данных.Clones the white space node, including its data value.
XmlDeclarationXmlDeclaration Создает точную копию узла XmlDeclaration, включая его значение данных.Clones the XmlDeclaration node, including its data value.
Все остальные типы узлов.All other node types. Эти типы узлов не могут быть клонированы.These node types cannot be cloned.

Этот метод является расширением Майкрософт для модель DOM (DOM).This method is a Microsoft extension to the Document Object Model (DOM).

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

Дополнительно