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
Возвращаемое значение
Точная копия узла.
Примеры
В следующем примере клонирует корневой узел 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).