PreviousPreOrder

Node.PreviousPreOrder method

Получает предыдущий узел в соответствии с алгоритмом обхода дерева предварительного заказа.

public Node PreviousPreOrder(Node rootNode)
ПараметрТипОписание
rootNodeNodeВерхний узел (предел) обхода.

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

Предыдущий узел в порядке предзаказа. Нуль, если достигнутоrootNode.

Примеры

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

Document doc = new Document(MyDir + "Images.docx");

Assert.AreEqual(9, 
    doc.GetChildNodes(NodeType.Shape, true).OfType<Shape>().Count(s => s.HasImage));

Node curNode = doc;
while (curNode != null)
{
    Node nextNode = curNode.NextPreOrder(doc);

    if (curNode.PreviousPreOrder(doc) != null && nextNode != null)
        Assert.AreEqual(curNode, nextNode.PreviousPreOrder(doc));

    if (curNode.NodeType == NodeType.Shape && ((Shape)curNode).HasImage)
        curNode.Remove();

    curNode = nextNode;
}

Assert.AreEqual(0,
    doc.GetChildNodes(NodeType.Shape, true).OfType<Shape>().Count(s => s.HasImage));

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