System.Xml.XmlNode.CloneNode 方法

方法描述

当在派生类中被重写时,创建该节点的副本。

语法定义(C# System.Xml.XmlNode.CloneNode 方法 的用法)

public abstract XmlNode CloneNode(
	bool deep
)

参数/返回值

参数值/返回值 参数类型/返回类型 参数描述/返回描述
deep System-Boolean 如果为 true,则递归地克隆指定节点下的子树;如果为 false,则只克隆该节点本身。
返回值 System.Xml.XmlNode 克隆的节点。

提示和注释

该方法用作节点的复制构造函数。 重复的节点没有父级(ParentNode 返回 null)。

下表描述每个 XmlNodeType 的特定行为。

XmlNodeType

CloneNode(true)

CloneNode(false)

特性

克隆特性节点(包括子节点)。

克隆特性节点(包括子节点)。

CData

克隆 CData 节点(包括它的数据内容)。

克隆 CData 节点(包括它的数据内容)。

Comment

克隆注释节点(包括它的文本内容)。

克隆注释节点(包括它的文本内容)。

文档

克隆文档节点(包括任何子节点)。

克隆文档节点。

DocumentFragment

克隆文档片段节点(包括任何子节点)。

克隆文档片段节点。

DocumentType

克隆文档类型节点。

克隆文档类型节点。

元素

克隆元素节点、其特性和任何子节点。

克隆元素节点及其特性(包括任何默认特性)。

Entity

无法克隆 Entity 节点。

无法克隆 Entity 节点。

EntityReference

克隆实体引用节点。 不包括替换文本。

克隆实体引用节点。 不包括替换文本。

Notation

表示法节点无法克隆。

表示法节点无法克隆。

ProcessingInstruction

克隆处理指令节点(包括它的目标和数据)。

克隆处理指令节点(包括它的目标和数据)。

SignificantWhitespace

克隆重要的空白节点(包括它的数据值)。

克隆重要的空白节点(包括它的数据值)。

Text

克隆文本节点(包括它的数据值)。

克隆文本节点(包括它的数据值)。

Whitespace

克隆空白节点(包括它的数据值)。

克隆空白节点(包括它的数据值)。

XmlDeclaration

克隆 XmlDeclaration 节点(包括它的数据值)。

克隆 XmlDeclaration 节点(包括它的数据值)。

所有其他节点类型。

这些节点类型无法克隆。

这些节点类型无法克隆。

System.Xml.XmlNode.CloneNode 方法例子

下面的示例显示深层克隆与浅表克隆之间的差异。

using System;
using System.IO;
using System.Xml;

public class Sample {

  public static void Main() {

    XmlDocument doc = new XmlDocument();
    doc.LoadXml("" +
                "Pride And Prejudice" +
                "19.95" +
                "");

    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);
  }
}

异常

异常 异常描述
InvalidOperationException 在不能被克隆的节点类型上调用该方法。

命名空间

namespace: System.Xml

程序集: System.Xml(在 System.Xml.dll 中)

版本信息

.NET Framework 受以下版本支持:4、3.5、3.0、2.0、1.1、1.0 .NET Framework Client Profile 受以下版本支持:4、3.5 SP1

适用平台

Windows 7, Windows Vista SP1 或更高版本, Windows XP SP3, Windows XP SP2 x64 Edition, Windows Server 2008(不支持服务器核心), Windows Server 2008 R2(支持 SP1 或更高版本的服务器核心), Windows Server 2003 SP2 .NET Framework 并不是对每个平台的所有版本都提供支持。有关支持的版本的列表,请参见.NET Framework 系统要求。