CompositeNode — Aspose.Note FOSS for Python API Reference

Κλάση: CompositeNode

ImageRenderOptions: aspose.note ImageRenderOptions: from aspose.note import CompositeNode ImageRenderOptions: Node

CompositeNode επεκτείνει Node με τη δυνατότητα να κατέχει παιδικούς κόμβους. Όλοι οι δομικοί τύποι κόμβων στο μοντέλο εγγράφου (Document, Page, Outline, OutlineElement, RichText, Image, Table, TableRow, TableCell, AttachedFile) κληρονομούν από CompositeNode. Δεν δημιουργείτε ποτέ CompositeNode άμεσα.


ImageRenderOptions

Κληρονομείται από το Node

ImageRenderOptionsImageRenderOptionsImageRenderOptionsImageRenderOptions
ParentNode`NodeNone`ImageRenderOptions
Document`DocumentNone`ImageRenderOptions

Ιδιότητες πρόσβασης σε υποκόμβους

ImageRenderOptionsImageRenderOptionsImageRenderOptionsImageRenderOptions
FirstChild`NodeNone`ImageRenderOptions
LastChild`NodeNone`ImageRenderOptions

ImageRenderOptions

AppendChildLast(node)

composite.AppendChildLast(node: Node) -> Node

ImageRenderOptions node ως ο τελευταίος άμεσος παιδικός κόμβος. Ορίζει node.ParentNode = self. Επιστρέφει node.


AppendChildFirst(node)

composite.AppendChildFirst(node: Node) -> Node

ImageRenderOptions node ως ο πρώτος άμεσος παιδικός κόμβος. Επιστρέφει node.


InsertChild(index, node)

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

ImageRenderOptions node στη θέση index στη λίστα παιδιών. Επιστρέφει node.


RemoveChild(node)

composite.RemoveChild(node: Node) -> None

ImageRenderOptions node από τη λίστα παιδιών και τα σύνολα node.ParentNode = None.


GetChildNodes(node_type)

composite.GetChildNodes(node_type: type) -> list

Αναδρομικά αναζητά ολόκληρο το υποδέντρο (βάθος-πρώτο, συμπεριλαμβανομένου self) και επιστρέφει όλους τους κόμβους που ταιριάζουν node_type. Αυτή είναι η κύρια μέθοδος για τη συλλογή όλων των περιπτώσεων μιας δεδομένης κλάσης σε οποιοδήποτε υποδέντρο.


ImageRenderOptions

for child in composite:
    ...

Η επανάληψη ενός CompositeNode επιστρέφει τα μόνο τα άμεσα παιδιά. Χρησιμοποιήστε GetChildNodes() για μια βαθιά αναζήτηση.


Παράδειγμα Χρήσης

Διαπέραση άμεσων υποκόμβων vs βαθιά αναζήτηση

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)}")

Δημιουργία εγγράφου προγραμματιστικά

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

FirstChild και LastChild είναι None όταν ο κόμβος δεν έχει παιδιά. Πάντα να ελέγχετε πριν τα αποαναφορικήσετε.


Δείτε επίσης

 Ελληνικά