Clone

Node.Clone method

创建节点的副本。

public Node Clone(bool isCloneChildren)
范围类型描述
isCloneChildrenBooleanTrue 则递归克隆指定节点下的子树; false 仅克隆节点本身。

返回值

克隆的节点。

评论

此方法充当节点的复制构造函数。 克隆的节点没有父节点,但与原始节点属于同一文档。

此方法始终执行节点的深层复制。这isCloneChildrenparameter 指定是否也复制所有子节点。

例子

演示如何克隆复合节点。

Document doc = new Document();
Paragraph para = doc.FirstSection.Body.FirstParagraph;
para.AppendChild(new Run(doc, "Hello world!"));

// 下面是克隆复合节点的两种方法。
// 1 - 创建节点的克隆,并创建其每个子节点的克隆。
Node cloneWithChildren = para.Clone(true);

Assert.IsTrue(((CompositeNode)cloneWithChildren).HasChildNodes);
Assert.AreEqual("Hello world!", cloneWithChildren.GetText().Trim());

// 2 - 创建一个节点的克隆,不带任何子节点。
Node cloneWithoutChildren = para.Clone(false);

Assert.IsFalse(((CompositeNode)cloneWithoutChildren).HasChildNodes);
Assert.AreEqual(string.Empty, cloneWithoutChildren.GetText().Trim());

也可以看看