Clone

Node.Clone method

Создает дубликат узла.

public Node Clone(bool isCloneChildren)
ПараметрТипОписание
isCloneChildrenBooleanЗначение true для рекурсивного клонирования поддерева в указанном узле; false, чтобы клонировать только сам узел.

Возвращаемое значение

Клонированный узел.

Примечания

Этот метод служит конструктором копирования узлов. Клонированный узел не имеет родительского узла, но принадлежит тому же документу, что и исходный узел.

Этот метод всегда выполняет глубокую копию узла.isCloneChildren Параметр указывает, следует ли также копировать все дочерние узлы.

Примеры

Показывает, как клонировать составной узел.

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

Смотрите также