Node
Inhalt
[
Ausblenden
]Node class
Basisklasse für alle Knoten eines Word-Dokuments.
Um mehr zu erfahren, besuchen Sie dieAspose.Words Document Object Model (DOM) Dokumentationsartikel.
public abstract class Node
Eigenschaften
Name | Beschreibung |
---|---|
CustomNodeId { get; set; } | Gibt die benutzerdefinierte Knotenkennung an. |
virtual Document { get; } | Ruft das Dokument ab, zu dem dieser Knoten gehört. |
virtual IsComposite { get; } | Gibt zurückWAHR ob dieser Knoten andere Knoten enthalten kann. |
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
Name | Beschreibung |
---|---|
abstract Accept(DocumentVisitor) | Akzeptiert einen Besucher. |
Clone(bool) | Erstellt ein Duplikat des Knotens. |
GetAncestor(NodeType) | Ruft den ersten Vorfahren des angegebenen abNodeType . |
GetAncestor(Type) | Ruft den ersten Vorfahren des angegebenen Objekttyps ab. |
virtual GetText() | Ruft den Text dieses Knotens und aller seiner untergeordneten Knoten ab. |
NextPreOrder(Node) | Ruft den nächsten Knoten gemäß dem Pre-Order-Tree-Traversal-Algorithmus ab. |
PreviousPreOrder(Node) | Ruft den vorherigen Knoten gemäß dem Pre-Order-Tree-Traversal-Algorithmus ab. |
Remove() | Entfernt sich selbst vom übergeordneten Element. |
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. |
static NodeTypeToString(NodeType) | Eine Dienstprogrammmethode, die einen Knotentyp-Enumerationswert in eine benutzerfreundliche Zeichenfolge konvertiert. |
Bemerkungen
Ein Dokument wird als Knotenbaum dargestellt, ähnlich wie DOM oder XmlDocument.
Weitere Informationen finden Sie im Composite-Designmuster.
DerNode
Klasse:
- Definiert die Schnittstelle des untergeordneten Knotens.
- Definiert die Schnittstelle für besuchende Knoten.
- Bietet standardmäßige Klonfunktion.
- Implementiert Mechanismen für übergeordnete Knoten und Eigentümerdokumente.
- Implementiert den Zugriff auf Geschwisterknoten.
Beispiele
Zeigt, wie alle untergeordneten Knoten eines bestimmten Typs aus einem zusammengesetzten Knoten entfernt werden.
Document doc = new Document(MyDir + "Tables.docx");
Assert.AreEqual(2, doc.GetChildNodes(NodeType.Table, true).Count);
Node curNode = doc.FirstSection.Body.FirstChild;
while (curNode != null)
{
// Speichern Sie den nächsten Geschwisterknoten als Variable, falls wir nach dem Löschen dieses Knotens dorthin wechseln möchten.
Node nextNode = curNode.NextSibling;
// Ein Abschnittshauptteil kann Absatz- und Tabellenknoten enthalten.
// Wenn der Knoten eine Tabelle ist, entfernen Sie ihn vom übergeordneten Knoten.
if (curNode.NodeType == NodeType.Table)
curNode.Remove();
curNode = nextNode;
}
Assert.AreEqual(0, doc.GetChildNodes(NodeType.Table, true).Count);
Zeigt, wie ein zusammengesetzter Knoten geklont wird.
Document doc = new Document();
Paragraph para = doc.FirstSection.Body.FirstParagraph;
para.AppendChild(new Run(doc, "Hello world!"));
// Nachfolgend finden Sie zwei Möglichkeiten zum Klonen eines zusammengesetzten Knotens.
// 1 – Erstellen Sie einen Klon eines Knotens und erstellen Sie auch einen Klon jedes seiner untergeordneten Knoten.
Node cloneWithChildren = para.Clone(true);
Assert.IsTrue(((CompositeNode)cloneWithChildren).HasChildNodes);
Assert.AreEqual("Hello world!", cloneWithChildren.GetText().Trim());
// 2 – Erstellen Sie einen Klon eines einzelnen Knotens ohne untergeordnete Elemente.
Node cloneWithoutChildren = para.Clone(false);
Assert.IsFalse(((CompositeNode)cloneWithoutChildren).HasChildNodes);
Assert.AreEqual(string.Empty, cloneWithoutChildren.GetText().Trim());
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
- namensraum Aspose.Words
- Montage Aspose.Words