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");
Смотрите также
- class Node
- пространство имен Aspose.Words
- сборка Aspose.Words