This topic has not yet been rated - Rate this topic

XmlNode.CloneNode Method

Creates a duplicate of the node, when overridden in a derived class.

Namespace:  System.Xml
Assembly:  System.Xml (in System.Xml.dll)
public abstract XmlNode CloneNode(
	bool deep
)

Parameters

deep
Type: System.Boolean

true to recursively clone the subtree under the specified node; false to clone only the node itself.

Return Value

Type: System.Xml.XmlNode
The cloned node.
ExceptionCondition
InvalidOperationException

Calling this method on a node type that cannot be cloned.

This method serves as a copy constructor for nodes. The duplicate node has no parent (ParentNode returns null).

The following table describes the specific behavior for each XmlNodeType.

XmlNodeType

CloneNode(true)

CloneNode(false)

Attribute

Clones the attribute node, including child nodes.

Clones the attribute node, including child nodes.

CData

Clones the CData node, including its data content.

Clones the CData node, including its data content.

Comment

Clones the comment node, including its text content.

Clones the comment node, including its text content.

Document

Clones the document node, including any child nodes.

Clones the document node.

DocumentFragment

Clones the document fragment node, including any child nodes.

Clones the document fragment node.

DocumentType

Clones the document type node.

Clones the document type node.

Element

Clones the element node, its attributes, and any child nodes.

Clones the element node and its attributes, including any default attributes.

Entity

Entity nodes cannot be cloned.

Entity nodes cannot be cloned.

EntityReference

Clones the entity reference node. The replacement text is not included.

Clones the entity reference node. The replacement text is not included.

Notation

Notation nodes cannot be cloned.

Notation nodes cannot be cloned.

ProcessingInstruction

Clones the processing instruction node, including its target and data.

Clones the processing instruction node, including its target and data.

SignificantWhitespace

Clones the significant white space node, including its data value.

Clones the significant white space node, including its data value.

Text

Clones the text node, including its data value.

Clones the text node, including its data value.

Whitespace

Clones the white space node, including its data value.

Clones the white space node, including its data value.

XmlDeclaration

Clones the XmlDeclaration node, including its data value.

Clones the XmlDeclaration node, including its data value.

All other node types.

These node types cannot be cloned.

These node types cannot be cloned.

The following example shows the difference between a deep and shallow clone.

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;

    //Create a deep clone.  The cloned node  
    //includes the child nodes.
    XmlNode deep = root.CloneNode(true);
    Console.WriteLine(deep.OuterXml);

    //Create a shallow clone.  The cloned node does not  
    //include the child nodes, but does include its attribute.
    XmlNode shallow = root.CloneNode(false);
    Console.WriteLine(shallow.OuterXml);
  }
}

.NET Framework

Supported in: 4.5.1, 4.5, 4, 3.5, 3.0, 2.0, 1.1, 1.0

.NET Framework Client Profile

Supported in: 4, 3.5 SP1

Windows Phone 8.1, Windows Phone 8, Windows 8.1, Windows Server 2012 R2, Windows 8, Windows Server 2012, Windows 7, Windows Vista SP2, Windows Server 2008 (Server Core Role not supported), Windows Server 2008 R2 (Server Core Role supported with SP1 or later; Itanium not supported)

The .NET Framework does not support all versions of every platform. For a list of the supported versions, see .NET Framework System Requirements.

Did you find this helpful?
(1500 characters remaining)
Thank you for your feedback
Show:
© 2014 Microsoft. All rights reserved.