NodeCollection

NodeCollection class

Rappresenta una raccolta di nodi di un tipo specifico.

Per saperne di più, visita ilModello oggetto documento Aspose.Words (DOM) articolo di documentazione.

public class NodeCollection : IEnumerable<Node>

Proprietà

NomeDescrizione
Count { get; }Ottiene il numero di nodi nella raccolta.
Item { get; }Recupera un nodo all’indice specificato.

Metodi

NomeDescrizione
Add(Node)Aggiunge un nodo alla fine della raccolta.
Clear()Rimuove tutti i nodi da questa raccolta e dal documento.
Contains(Node)Determina se un nodo è nella raccolta.
GetEnumerator()Fornisce una semplice iterazione di stile “foreach” sulla raccolta di nodi.
IndexOf(Node)Restituisce l’indice in base zero del nodo specificato.
Insert(int, Node)Inserisce un nodo nella raccolta in corrispondenza dell’indice specificato.
Remove(Node)Rimuove il nodo dalla raccolta e dal documento.
RemoveAt(int)Rimuove il nodo all’indice specificato dalla raccolta e dal documento.
ToArray()Copia tutti i nodi dalla raccolta in un nuovo array di nodi.

Osservazioni

NodeCollection non possiede i nodi che contiene, piuttosto, è solo una selezione di nodes del tipo specificato, ma i nodi sono memorizzati nell’albero sotto i rispettivi nodi principali.

NodeCollectionsupporta l’accesso indicizzato, l’iterazione e fornisce metodi di aggiunta e rimozione.

ILNodeCollection la raccolta è “live”, ovvero le modifiche ai figli del nodo object da cui è stata creata si riflettono immediatamente nei nodi restituiti dalNodeCollection Proprietà e metodi .

NodeCollection viene restituito daGetChildNodes e funge anche da classe base per raccolte di nodi tipizzati comeSectionCollection , ParagraphCollection eccetera.

NodeCollection può essere “piatto” e contenere solo i figli immediati del nodo da cui è stato creato , oppure può essere “profondo” e contenere tutti i figli discendenti.

Esempi

Mostra come sostituire tutte le forme delle caselle di testo con forme di immagine.

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");

Guarda anche