System.Xml.XmlDocument.ImportNode 方法
方法描述
将节点从另一个文档导入到当前文档。
语法定义(C# System.Xml.XmlDocument.ImportNode 方法 的用法)
public virtual XmlNode ImportNode( XmlNode node, bool deep )
参数/返回值
参数值/返回值 | 参数类型/返回类型 | 参数描述/返回描述 |
---|---|---|
node | System-Xml-XmlNode | 正在被导入的节点。 |
deep | System-Boolean | 如果执行深层克隆,则为 true;否则为 false。 |
返回值 | System.Xml.XmlNode | 导入的 XmlNode。 |
提示和注释
返回的节点没有父级。 源节点未变更或从原文档移除;ImportNode 创建源节点的副本。
导入节点会创建导入文档所有的 XmlNode 对象,其 Name 和 NodeType 与源节点相同。 新对象还具有与命名空间(Prefix、LocalName 和 NamespaceURI)相关的特性。
根据导入节点的节点类型和 deep 参数的值,将根据需要复制附加信息。 如果将 XML 或 HTML 源的片段从一个文档复制到另一个文档,则该方法将尝试镜像预期的行为(须知道,在 XML 的情况下,两个文档可能具有不同的 DTD)。
下表描述每个 XmlNodeType 的特定行为。
XmlNodeType
ImportNode(true)
ImportNode(false)
特性
在生成的 XmlAttribute 上将 Specified 属性设置为 true。 递归地导入源 XmlAttribute 的子代,结果节点重新装配以形成相应的子树。
deep 参数不适用于 XmlAttribute 节点;当导入时,它们总是携带它们的子级。
CData
复制节点(包括它的数据)。
复制节点(包括它的数据)。
Comment
复制节点(包括它的数据)。
复制节点(包括它的数据)。
DocumentFragment
递归地导入源节点的子代,结果节点重新装配以形成相应的子树。
生成空 XmlDocumentFragment。
DocumentType
复制节点(包括它的数据)。*
复制节点(包括它的数据)。*
元素
递归地导入源元素的子代和其指定的特性节点,结果节点重新装配以形成相应的子树。
注意:不复制默认特性。 如果导入的文档定义此元素名的默认特性,则分配这些特性。
导入源元素的指定特性节点,将生成的 XmlAttribute 节点附加到生成的 XmlElement。
注意:不复制默认特性。 如果导入的文档定义此元素名的默认特性,则分配这些特性。
EntityReference
由于源文档和目标文档定义实体的方式可能不同,所以此方法只复制 XmlEntityReference 节点。 不包括替换文本。 如果目标文档定义了实体,则对其赋值。
由于源文档和目标文档定义实体的方式可能不同,所以此方法只复制 XmlEntityReference 节点。 不包括替换文本。 如果目标文档定义了实体,则对其赋值。
ProcessingInstruction
从导入的节点复制目标和数据值。
从导入的节点复制目标和数据值。
Text
复制节点(包括它的数据)。
复制节点(包括它的数据)。
SignificantWhitespace
复制节点(包括它的数据)。
复制节点(包括它的数据)。
Whitespace
复制节点(包括它的数据)。
复制节点(包括它的数据)。
XmlDeclaration
从导入的节点复制目标和数据值。
从导入的节点复制目标和数据值。
所有其他节点类型。
无法导入这些节点类型。
无法导入这些节点类型。
*虽然可以导入 DocumentType 节点,但一个文档只能有一个 DocumentType。 如果该文档当前具有一个 DocumenType 节点,在添加新 DocumenType 节点之前,必须将现有的移除。
System.Xml.XmlDocument.ImportNode 方法例子
该示例使用文件 books.xml 作为输入。
The Autobiography of Benjamin Franklin Benjamin Franklin 8.99 The Confidence Man Herman Melville 11.99 The Gorgias Plato 9.99
异常
异常 | 异常描述 |
---|---|
InvalidOperationException | 在一个不能被导入的节点类型上调用了该方法。 |
版本信息
.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 系统要求。