NodeCollection

NodeCollection class

Представляет собой набор узлов определенного типа.

Чтобы узнать больше, посетитеОбъектная модель документа Aspose.Words (DOM) документальная статья.

public class NodeCollection : IEnumerable<Node>

Характеристики

ИмяОписание
Count { get; }Получает количество узлов в коллекции.
Item { get; }Извлекает узел по указанному индексу.

Методы

ИмяОписание
Add(Node)Добавляет узел в конец коллекции.
Clear()Удаляет все узлы из этой коллекции и из документа.
Contains(Node)Определяет, находится ли узел в коллекции.
GetEnumerator()Обеспечивает простую итерацию в стиле «foreach» по коллекции узлов.
IndexOf(Node)Возвращает индекс указанного узла, отсчитываемый от нуля.
Insert(int, Node)Вставляет узел в коллекцию по указанному индексу.
Remove(Node)Удаляет узел из коллекции и из документа.
RemoveAt(int)Удаляет узел с указанным индексом из коллекции и из документа.
ToArray()Копирует все узлы из коллекции в новый массив узлов.

Примечания

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

NodeCollection поддерживает индексированный доступ, итерацию и предоставляет методы добавления и удаления.

TheNodeCollection Коллекция является «живой», т.е. изменения в дочерних элементах узла object , из которого она была создана, немедленно отражаются в узлах, возвращаемых функциейNodeCollection свойства и методы.

NodeCollection возвращаетсяGetChildNodes , а также служит базовым классом для типизированных коллекций узлов, таких какSectionCollection , ParagraphCollection и т. д.

NodeCollectionможет быть «плоским» и содержать только непосредственные дочерние элементы узла, из которого он был создан , или он может быть «глубоким» и содержать всех дочерних элементов.

Примеры

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

Document doc = new Document(MyDir + "Textboxes in drawing canvas.docx");

Shape[] shapes = doc.GetChildNodes(NodeType.Shape, true).OfType<Shape>().ToArray();

Assert.AreEqual(3, shapes.Count(s => s.ShapeType == ShapeType.TextBox));
Assert.AreEqual(1, shapes.Count(s => s.ShapeType == ShapeType.Image));

foreach (Shape shape in shapes)
{
    if (shape.ShapeType == ShapeType.TextBox)
    {
        Shape replacementShape = new Shape(doc, ShapeType.Image);
        replacementShape.ImageData.SetImage(ImageDir + "Logo.jpg");
        replacementShape.Left = shape.Left;
        replacementShape.Top = shape.Top;
        replacementShape.Width = shape.Width;
        replacementShape.Height = shape.Height;
        replacementShape.RelativeHorizontalPosition = shape.RelativeHorizontalPosition;
        replacementShape.RelativeVerticalPosition = shape.RelativeVerticalPosition;
        replacementShape.HorizontalAlignment = shape.HorizontalAlignment;
        replacementShape.VerticalAlignment = shape.VerticalAlignment;
        replacementShape.WrapType = shape.WrapType;
        replacementShape.WrapSide = shape.WrapSide;

        shape.ParentNode.InsertAfter(replacementShape, shape);
        shape.Remove();
    }
}

shapes = doc.GetChildNodes(NodeType.Shape, true).OfType<Shape>().ToArray();

Assert.AreEqual(0, shapes.Count(s => s.ShapeType == ShapeType.TextBox));
Assert.AreEqual(4, shapes.Count(s => s.ShapeType == ShapeType.Image));

doc.Save(ArtifactsDir + "Shape.ReplaceTextboxesWithImages.docx");

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