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

PropertiesPropertiesPropertiesProperties
ParentNode`NodeNone`Properties
Document`DocumentNone`Properties

Kindzugriffseigenschaften

PropertiesPropertiesPropertiesProperties
FirstChild`NodeNone`Properties
LastChild`NodeNone`Properties

Properties

AppendChildLast(node)

composite.AppendChildLast(node: Node) -> Node

Properties node als das letzte direkte Kind. Setzt node.ParentNode = self. Gibt zurück node.


AppendChildFirst(node)

composite.AppendChildFirst(node: Node) -> Node

Properties node als das erste direkte Kind. Gibt zurück node.


InsertChild(index, node)

composite.InsertChild(index: int, node: Node) -> Node

Properties node an Position index in der Kindliste. Gibt zurück node.


RemoveChild(node)

composite.RemoveChild(node: Node) -> None

Properties node aus der Kindliste und setzt node.ParentNode = None.


GetChildNodes(node_type)

composite.GetChildNodes(node_type: type) -> list

Durchsucht 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

 Deutsch