XmlNode.Clone Method
Definition
Important
Some information relates to prerelease product that may be substantially modified before it’s released. Microsoft makes no warranties, express or implied, with respect to the information provided here.
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
Returns
The cloned node.
Examples
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
Remarks
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
is equivalent to calling CloneNode(true)
.
The following table describes the specific behavior for each XmlNodeType.
XmlNodeType | Clone |
---|---|
Attribute | Clones the attribute node, including child nodes. |
CData | Clones the CData node, including its data content. |
Comment | Clones the comment node, including its text content. |
Document | Clones the document node, including any child nodes. |
DocumentFragment | Clones the document fragment node, including any child nodes. |
DocumentType | Clones the document type node. |
Element | Clones the element node, its attributes, and any child nodes. |
Entity | Entity nodes cannot be cloned. |
EntityReference | Clones the entity reference node. The replacement text is not included. |
Notation | Notation nodes cannot be cloned. |
ProcessingInstruction | Clones the processing instruction node, including its target and data. |
SignificantWhitespace | Clones the significant white space node, including its data value. |
Text | Clones the text node, including its data value. |
Whitespace | Clones the white space node, including its data value. |
XmlDeclaration | Clones the XmlDeclaration node, including its data value. |
All other node types. | These node types cannot be cloned. |
This method is a Microsoft extension to the Document Object Model (DOM).