CompositeNode — Aspose.Note FOSS for Python API Reference

Kelas: CompositeNode

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

CompositeNode memperluas Node dengan kemampuan untuk memiliki node anak. Semua tipe node struktural dalam model dokumen (Document, Page, Outline, OutlineElement, RichText, Image, Table, TableRow, TableCell, AttachedFile) mewarisi dari CompositeNode. Anda tidak pernah menginstansiasi CompositeNode secara langsung.


ImageRenderOptions

Mewarisi dari Node

ImageRenderOptionsImageRenderOptionsImageRenderOptionsImageRenderOptions
ParentNode`NodeNone`ImageRenderOptions
Document`DocumentNone`ImageRenderOptions

Properti Akses-Anak

ImageRenderOptionsImageRenderOptionsImageRenderOptionsImageRenderOptions
FirstChild`NodeNone`ImageRenderOptions
LastChild`NodeNone`ImageRenderOptions

ImageRenderOptions

AppendChildLast(node)

composite.AppendChildLast(node: Node) -> Node

ImageRenderOptions node sebagai anak langsung terakhir. Mengatur node.ParentNode = self. Mengembalikan node.


AppendChildFirst(node)

composite.AppendChildFirst(node: Node) -> Node

ImageRenderOptions node sebagai anak langsung pertama. Mengembalikan node.


InsertChild(index, node)

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

ImageRenderOptions node pada posisi index dalam daftar anak. Mengembalikan node.


RemoveChild(node)

composite.RemoveChild(node: Node) -> None

ImageRenderOptions node dari daftar anak dan set node.ParentNode = None.


GetChildNodes(node_type)

composite.GetChildNodes(node_type: type) -> list

Mencari secara rekursif seluruh subtree (depth-first, termasuk self) dan mengembalikan semua node yang cocok node_type. Ini adalah cara utama untuk mengumpulkan semua instance dari kelas tertentu dalam subtree mana pun.


ImageRenderOptions

for child in composite:
    ...

Mengiterasi sebuah CompositeNode menghasilkan hanya anak langsung. Gunakan GetChildNodes() untuk pencarian mendalam.


Contoh Penggunaan

Menelusuri anak langsung vs pencarian mendalam

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

Membangun dokumen secara programatik

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

Keamanan None

FirstChild dan LastChild adalah None ketika node tidak memiliki anak. Selalu periksa sebelum mendereferensikannya.


Lihat Juga

 Bahasa Indonesia