CompositeNode — Aspose.Note FOSS for Python API Reference
Klasse: CompositeNode
Properties: aspose.note Properties: from aspose.note import CompositeNode Properties: Node
CompositeNode erweitert Node mit der Fähigkeit, Kindknoten zu besitzen. Alle strukturellen Knotentypen im Dokumentenmodell (Document, Page, Outline, OutlineElement, RichText, Image, Table, TableRow, TableCell, AttachedFile) erben von CompositeNode. Sie instanziieren nie CompositeNode direkt.
Properties
Geerbt von Node
| Properties | Properties | Properties | Properties |
|---|---|---|---|
ParentNode | `Node | None` | Properties |
Document | `Document | None` | Properties |
Kindzugriffseigenschaften
| Properties | Properties | Properties | Properties |
|---|---|---|---|
FirstChild | `Node | None` | Properties |
LastChild | `Node | None` | Properties |
Properties
AppendChildLast(node)
composite.AppendChildLast(node: Node) -> NodeProperties node als das letzte direkte Kind. Setzt node.ParentNode = self. Gibt zurück node.
AppendChildFirst(node)
composite.AppendChildFirst(node: Node) -> NodeProperties node als das erste direkte Kind. Gibt zurück node.
InsertChild(index, node)
composite.InsertChild(index: int, node: Node) -> NodeProperties node an Position index in der Kindliste. Gibt zurück node.
RemoveChild(node)
composite.RemoveChild(node: Node) -> NoneProperties node aus der Kindliste und setzt node.ParentNode = None.
GetChildNodes(node_type)
composite.GetChildNodes(node_type: type) -> listDurchsucht rekursiv den gesamten Unterbaum (Tiefensuche, einschließlich self) und gibt alle Knoten zurück, die übereinstimmen node_type. Dies ist die primäre Methode, um alle Instanzen einer gegebenen Klasse innerhalb eines beliebigen Unterbaums zu sammeln.
Properties
for child in composite:
...Iterieren eines CompositeNode liefert sein nur direkte Kinder. Verwenden GetChildNodes() für eine tiefgehende Suche.
Verwendungsbeispiel
Durchlaufen direkter Kinder vs Tiefensuche
from aspose.note import Document, Page, Outline, RichText
doc = Document("MyNotes.one")
first_page = doc.GetChildNodes(Page)[0]
# Direct children of a page (Outline nodes)
print("Direct children of first page:")
for child in first_page:
print(f" {child.NodeType}")
# Deep search — all RichText nodes anywhere under first_page
all_rt = first_page.GetChildNodes(RichText)
print(f"\nAll RichText nodes in first page: {len(all_rt)}")Ein Dokument programmgesteuert erstellen
from aspose.note import Document, Page, Outline, OutlineElement, RichText, SaveFormat, PdfSaveOptions
doc = Document()
page = Page()
outline = Outline()
oe = OutlineElement()
rt = RichText()
rt.Append("Hello, OneNote!")
oe.AppendChildLast(rt)
outline.AppendChildLast(oe)
page.AppendChildLast(outline)
doc.AppendChildLast(page)
doc.Save("output.pdf", PdfSaveOptions(SaveFormat.Pdf))None‑Sicherheit
FirstChild und LastChild sind None wenn der Knoten keine Kinder hat. Immer prüfen, bevor man sie dereferenziert.
Siehe auch
- Properties: Basisklasse für alle Dokumentknoten
- Properties: Wurzel
CompositeNode - Properties: Seitenebene
CompositeNode - RichText: Textblock
CompositeNode - Entwicklerhandbuch