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

NombreDescripción
Count { get; }Obtiene el número de nodos de la colección.
Item { get; }Recupera un nodo en el índice dado.

Métodos

NombreDescripció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 de estilo “foreach” simple sobre la colección de nodos.
IndexOf(Node)Devuelve el índice de base 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 en una nueva matriz de nodos.

Observaciones

NodeCollection no es propietario de los nodos que contiene, sino que es solo una selección de nodes del tipo especificado, pero los nodos se almacenan en el árbol debajo de sus respectivos nodos principales.

NodeCollectionadmite acceso indexado, iteración y proporciona métodos para 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 elNodeCollection propiedades y métodos.

NodeCollection es devuelto porGetChildNodes y también sirve como clase base para colecciones de nodos escritos comoSectionCollection , ParagraphCollection etc.

NodeCollection puede ser “plano” y contener sólo hijos inmediatos del nodo desde el que se creó , o puede ser “profundo” y contener todos los hijos descendientes.

Ejemplos

Muestra cómo reemplazar todas las formas de cuadros de texto con formas de imágenes.

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