Export (0) Print
Expand All

XmlDocument.CloneNode Method

Creates a duplicate of this node.

Namespace: System.Xml
Assembly: System.Xml (in system.xml.dll)

public override XmlNode CloneNode (
	bool deep
)
public XmlNode CloneNode (
	boolean deep
)
public override function CloneNode (
	deep : boolean
) : XmlNode

Parameters

deep

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

Return Value

The cloned XmlDocument node.

This method serves as a copy constructor for nodes. The cloned node has no parent (ParentNode returns a null reference (Nothing in Visual Basic)).

If deep is true, the cloned node includes all the child nodes, otherwise only the XmlDocument node is cloned. See the XmlNode.CloneNode method to see how this method behaves on other node types.

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()
  {
    //Create the XmlDocument.
    XmlDocument doc = new XmlDocument();
    doc.LoadXml("<book genre='novel' ISBN='1-861001-57-5'>" +
                "<title>Pride And Prejudice</title>" +
                "</book>");

    //Create a deep clone.  The cloned node 
    //includes the child node.
    XmlDocument deep = (XmlDocument) doc.CloneNode(true);
    Console.WriteLine(deep.ChildNodes.Count);

    //Create a shallow clone.  The cloned node does not 
    //include the child node.
    XmlDocument shallow = (XmlDocument) doc.CloneNode(false);
    Console.WriteLine(shallow.Name + shallow.OuterXml);
    Console.WriteLine(shallow.ChildNodes.Count);
    
  }
}

import System.*;
import System.IO.*;
import System.Xml.*;

public class Sample
{
    public static void main(String[] args)
    {
        //Create the XmlDocument.
        XmlDocument doc = new XmlDocument();
        doc.LoadXml(("<book genre='novel' ISBN='1-861001-57-5'>"
                    + "<title>Pride And Prejudice</title>"
                    + "</book>"));

        //Create a deep clone.  The cloned node 
        //includes the child node.
        XmlDocument deep = (XmlDocument)doc.CloneNode(true);
        Console.WriteLine(deep.get_ChildNodes().get_Count());

        //Create a shallow clone.  The cloned node does not 
        //include the child node.
        XmlDocument shallow = (XmlDocument)doc.CloneNode(false);
        Console.WriteLine(shallow.get_Name() + shallow.get_OuterXml());
        Console.WriteLine(shallow.get_ChildNodes().get_Count());
    } //main
} //Sample

Windows 98, Windows 2000 SP4, Windows CE, Windows Millennium Edition, Windows Mobile for Pocket PC, Windows Mobile for Smartphone, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition

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

.NET Framework

Supported in: 2.0, 1.1, 1.0

.NET Compact Framework

Supported in: 2.0, 1.0

Community Additions

ADD
Show:
© 2014 Microsoft