NodeCollection

NodeCollection class

Stellt eine Sammlung von Knoten eines bestimmten Typs dar.

Um mehr zu erfahren, besuchen Sie dieAspose.Words Document Object Model (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 einen Knoten am Ende der Sammlung hinzu.
Clear()Entfernt alle Knoten aus dieser Sammlung und aus dem Dokument.
Contains(Node)Bestimmt, ob ein Knoten in der Sammlung ist.
GetEnumerator()Bietet eine einfache Iteration im „foreach“-Stil über die Sammlung von Knoten.
IndexOf(Node)Gibt den nullbasierten Index des angegebenen Knotens zurück.
Insert(int, Node)Fügt am angegebenen Index einen Knoten 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 Array von Knoten.

Bemerkungen

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

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

DerNodeCollection Die Sammlung ist „live“, d. h. Änderungen an den untergeordneten Knoten des Knotens object , aus dem sie erstellt wurde, werden sofort in den von zurückgegebenen Knoten widergespiegeltNodeCollection Eigenschaften und Methoden.

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

NodeCollection kann „flach“ sein und nur unmittelbare Kinder des Knotens enthalten, von dem aus es erstellt wurde, oder es kann „tief“ sein und alle untergeordneten Kinder 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