NodeCollection
NodeCollection class
Representa una colección de nodos de un tipo específico.
Para obtener más información, visite elModelo de objetos de documento (DOM) de Aspose.Words Artículo de documentación.
public class NodeCollection : IEnumerable<Node>
Propiedades
Nombre | Descripción |
---|---|
Count { get; } | Obtiene el número de nodos en la colección. |
Item { get; } | Recupera un nodo en el índice dado. |
Métodos
Nombre | Descripción |
---|---|
Add(Node) | Agrega un nodo al final de la colección. |
Clear() | Elimina todos los nodos de esta colección y del documento. |
Contains(Node) | Determina si un nodo está en la colección. |
GetEnumerator() | Proporciona una iteración simple al estilo “foreach” sobre la colección de nodos. |
IndexOf(Node) | Devuelve el índice basado en cero del nodo especificado. |
Insert(int, Node) | Inserta un nodo en la colección en el índice especificado. |
Remove(Node) | Elimina el nodo de la colección y del documento. |
RemoveAt(int) | Elimina el nodo en el índice especificado de la colección y del documento. |
ToArray() | Copia todos los nodos de la colección a una nueva matriz de nodos. |
Observaciones
NodeCollection
no posee los nodos que contiene, sino que es solo una selección de nodes del tipo especificado, pero los nodos se almacenan en el árbol bajo sus respectivos nodos padres.
NodeCollection
Admite acceso indexado, iteración y proporciona métodos de agregar y eliminar.
ElNodeCollection
La colección está “activa”, es decir, los cambios en los hijos del nodo object desde el que se creó se reflejan inmediatamente en los nodos devueltos por la colección.NodeCollection
Propiedades y métodos de .
NodeCollection
es devuelto porGetChildNodes
y también sirve como clase base para colecciones de nodos tipificados comoSectionCollection
, ParagraphCollection
etc.
NodeCollection
puede ser “plano” y contener sólo los hijos inmediatos del nodo desde el cual fue creado , o puede ser “profundo” y contener todos los hijos descendientes.
Ejemplos
Muestra cómo reemplazar todas las formas de cuadro de texto con formas de imagen.
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");
Ver también
- class Node
- espacio de nombres Aspose.Words
- asamblea Aspose.Words