CompositeNode

CompositeNode class

Basisklasse für Knoten, die andere Knoten enthalten können.

Um mehr zu erfahren, besuchen Sie dieAspose.Words Document Object Model (DOM) Dokumentationsartikel.

public abstract class CompositeNode : Node, IEnumerable<Node>, IXPathNavigable

Eigenschaften

NameBeschreibung
Count { get; }Ruft die Anzahl der unmittelbaren Kinder dieses Knotens ab.
CustomNodeId { get; set; }Gibt die benutzerdefinierte Knotenkennung an.
virtual Document { get; }Ruft das Dokument ab, zu dem dieser Knoten gehört.
FirstChild { get; }Ruft das erste untergeordnete Element des Knotens ab.
HasChildNodes { get; }Gibt zurückWAHR wenn dieser Knoten untergeordnete Knoten hat.
override IsComposite { get; }Gibt zurückWAHR da dieser Knoten untergeordnete Knoten haben kann.
LastChild { get; }Ruft das letzte untergeordnete Element des Knotens ab.
NextSibling { get; }Ruft den Knoten ab, der diesem Knoten unmittelbar folgt.
abstract NodeType { get; }Ruft den Typ dieses Knotens ab.
ParentNode { get; }Ruft das unmittelbare übergeordnete Element dieses Knotens ab.
PreviousSibling { get; }Ruft den Knoten ab, der diesem Knoten unmittelbar vorangeht.
Range { get; }Gibt a zurückRange Objekt, das den Teil eines Dokuments darstellt, der in diesem Knoten enthalten ist.

Methoden

NameBeschreibung
abstract Accept(DocumentVisitor)Akzeptiert einen Besucher.
AppendChild(Node)Fügt den angegebenen Knoten am Ende der Liste der untergeordneten Knoten für diesen Knoten hinzu.
Clone(bool)Erstellt ein Duplikat des Knotens.
CreateNavigator()Erstellt einen Navigator, der zum Durchlaufen und Lesen von Knoten verwendet werden kann.
GetAncestor(NodeType)Ruft den ersten Vorfahren des angegebenen abNodeType .
GetAncestor(Type)Ruft den ersten Vorfahren des angegebenen Objekttyps ab.
GetChild(NodeType, int, bool)Gibt einen N-ten untergeordneten Knoten zurück, der dem angegebenen Typ entspricht.
GetChildNodes(NodeType, bool)Gibt eine Live-Sammlung untergeordneter Knoten zurück, die dem angegebenen Typ entsprechen.
GetEnumerator()Bietet Unterstützung für die Iteration jedes Stils über die untergeordneten Knoten dieses Knotens.
override GetText()Ruft den Text dieses Knotens und aller seiner untergeordneten Knoten ab.
IndexOf(Node)Gibt den Index des angegebenen untergeordneten Knotens im untergeordneten Knoten-Array zurück.
InsertAfter(NodeNode)Fügt den angegebenen Knoten unmittelbar nach dem angegebenen Referenzknoten ein.
InsertBefore(NodeNode)Fügt den angegebenen Knoten unmittelbar vor dem angegebenen Referenzknoten ein.
NextPreOrder(Node)Ruft den nächsten Knoten gemäß dem Pre-Order-Tree-Traversal-Algorithmus ab.
PrependChild(Node)Fügt den angegebenen Knoten am Anfang der Liste der untergeordneten Knoten für diesen Knoten hinzu.
PreviousPreOrder(Node)Ruft den vorherigen Knoten gemäß dem Pre-Order-Tree-Traversal-Algorithmus ab.
Remove()Entfernt sich selbst vom übergeordneten Element.
RemoveAllChildren()Entfernt alle untergeordneten Knoten des aktuellen Knotens.
RemoveChild(Node)Entfernt den angegebenen untergeordneten Knoten.
RemoveSmartTags()Entfernt alleSmartTagNachkommenknoten des aktuellen Knotens.
SelectNodes(string)Wählt eine Liste von Knoten aus, die dem XPath-Ausdruck entsprechen.
SelectSingleNode(string)Wählt den ersten ausNode das entspricht dem XPath-Ausdruck.
ToString(SaveFormat)Exportiert den Inhalt des Knotens in einen String im angegebenen Format.
ToString(SaveOptions)Exportiert den Inhalt des Knotens mit den angegebenen Speicheroptionen in einen String.

Bemerkungen

Ein Dokument wird als Knotenbaum dargestellt, ähnlich wie DOM oder XmlDocument.

Weitere Informationen finden Sie im Composite-Designmuster.

DerCompositeNode Klasse:

  • Bietet Zugriff auf die untergeordneten Knoten.
  • Implementiert zusammengesetzte Operationen wie das Einfügen und Entfernen von untergeordneten Elementen.
  • Stellt Methoden für die XPath-Navigation bereit.

Beispiele

Zeigt, wie die Sammlung untergeordneter Knoten eines zusammengesetzten Knotens durchlaufen wird.

Document doc = new Document();

// Fügen Sie dem ersten Absatz dieses Dokuments zwei Läufe und eine Form als untergeordnete Knoten hinzu.
Paragraph paragraph = (Paragraph)doc.GetChild(NodeType.Paragraph, 0, true);
paragraph.AppendChild(new Run(doc, "Hello world! "));

Shape shape = new Shape(doc, ShapeType.Rectangle);
shape.Width = 200;
shape.Height = 200;
// Beachten Sie, dass die „CustomNodeId“ nicht in einer Ausgabedatei gespeichert wird und nur während der Knotenlebensdauer vorhanden ist.
shape.CustomNodeId = 100;
shape.WrapType = WrapType.Inline;
paragraph.AppendChild(shape);

paragraph.AppendChild(new Run(doc, "Hello again!"));

// Durch die Sammlung der unmittelbar untergeordneten Elemente des Absatzes iterieren,
// und alle Läufe oder Formen drucken, die wir darin finden.
NodeCollection children = paragraph.GetChildNodes(NodeType.Any, false);

Assert.AreEqual(3, paragraph.GetChildNodes(NodeType.Any, false).Count);

foreach (Node child in children)
    switch (child.NodeType)
    {
        case NodeType.Run:
            Console.WriteLine("Run contents:");
            Console.WriteLine($"\t\"{child.GetText().Trim()}\"");
            break;
        case NodeType.Shape:
            Shape childShape = (Shape)child;
            Console.WriteLine("Shape:");
            Console.WriteLine($"\t{childShape.ShapeType}, {childShape.Width}x{childShape.Height}");
            break;
    }

Siehe auch