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
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 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.
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 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
- class Node
- namensraum Aspose.Words
- Montage Aspose.Words