NodeCollection

NodeCollection class

Stellt eine Sammlung von Knoten eines bestimmten Typs dar.

Um mehr zu erfahren, besuchen Sie dieAspose.Words Dokumentobjektmodell (DOM) Dokumentationsartikel.

public class NodeCollection : IEnumerable<Node>

Eigenschaften

NameBeschreibung
Count { get; }Ruft die Anzahl der Knoten in der Sammlung ab.
Item { get; }Ruft einen Knoten am angegebenen Index ab.

Methoden

NameBeschreibung
Add(Node)Fügt am Ende der Sammlung einen Knoten hinzu.
Clear()Entfernt alle Knoten aus dieser Sammlung und aus dem Dokument.
Contains(Node)Bestimmt, ob ein Knoten in der Sammlung vorhanden ist.
GetEnumerator()Bietet eine einfache Iteration im „foreach“-Stil über die Knotensammlung.
IndexOf(Node)Gibt den nullbasierten Index des angegebenen Knotens zurück.
Insert(int, Node)Fügt einen Knoten am angegebenen Index in die Sammlung ein.
Remove(Node)Entfernt den Knoten aus der Sammlung und aus dem Dokument.
RemoveAt(int)Entfernt den Knoten am angegebenen Index aus der Sammlung und aus dem Dokument.
ToArray()Kopiert alle Knoten aus der Sammlung in ein neues Knoten-Array.

Bemerkungen

NodeCollection besitzt nicht die darin enthaltenen Knoten, sondern ist lediglich eine Auswahl von Knoten des angegebenen Typs, aber die Knoten werden im Baum unter ihren jeweiligen übergeordneten Knoten gespeichert.

NodeCollection unterstützt indizierten Zugriff, Iteration und bietet Methoden zum Hinzufügen und Entfernen.

DerNodeCollection Die Sammlung ist “live”, d. h. Änderungen an den untergeordneten Elementen des Knotens object , aus dem sie erstellt wurde, werden sofort in den von derNodeCollection Eigenschaften und Methoden.

NodeCollection wird zurückgegeben vonGetChildNodes und dient auch als Basisklasse für typisierte Knotensammlungen wieSectionCollection , ParagraphCollection usw.

NodeCollectionkann „flach“ sein und nur unmittelbare untergeordnete Elemente des Knotens enthalten, aus dem es erstellt wurde , oder es kann „tief“ sein und alle untergeordneten Elemente enthalten.

Beispiele

Zeigt, wie alle Textfeldformen durch Bildformen ersetzt werden.

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

Siehe auch