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
Name | Beschreibung |
---|---|
Count { get; } | Ruft die Anzahl der Knoten in der Sammlung ab. |
Item { get; } | Ruft einen Knoten am angegebenen Index ab. |
Methoden
Name | Beschreibung |
---|---|
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.
NodeCollection
kann „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
- class Node
- namensraum Aspose.Words
- Montage Aspose.Words