CompositeNode

CompositeNode — Aspose.Note FOSS for Python API Reference

Klasa: CompositeNode

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

CompositeNode proširuje Node sa mogućnošću da poseduje čvorove‑deca. Svi strukturalni tipovi čvorova u modelu dokumenta (Document, Page, Outline, OutlineElement, RichText, Image, Table, TableRow, TableCell, AttachedFile) nasleđuju od CompositeNode. Nikada ne instancirate CompositeNode direktno.


Nasleđeno od Node

ParentNode`NodeNone`
Document`DocumentNone`

Svojstva za pristup podčvorovima

FirstChild`NodeNone`
LastChild`NodeNone`

AppendChildLast(node)

composite.AppendChildLast(node: Node) -> Node

node kao poslednje direktno dete. Postavlja node.ParentNode = self. Vraća node.


AppendChildFirst(node)

composite.AppendChildFirst(node: Node) -> Node

node kao prvo direktno dete. Vraća node.


InsertChild(index, node)

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

node na poziciji index u listi dece. Vraća node.


RemoveChild(node)

composite.RemoveChild(node: Node) -> None

node iz liste dece i skupova node.ParentNode = None.


GetChildNodes(node_type)

composite.GetChildNodes(node_type: type) -> list

Rekurzivno pretražuje čitavu podstablo (dubinski, uključujući self) i vraća sve čvorove koji se podudaraju node_type. Ovo je primarni način za prikupljanje svih instanci određene klase unutar bilo kog podstabla.


for child in composite:
    ...

Iteriranje CompositeNode vraća njegov samo direktnu decu. Koristite GetChildNodes() za duboku pretragu.


Primer upotrebe

Prolazak kroz direktne podčvorove naspram dubinskog pretraživanja

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

Programski izgradite dokument

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

FirstChild i LastChild su None kada čvor nema decu. Uvek proverite pre dereferenciranja.


Vidi i

  • : bazna klasa za sve čvorove dokumenta
  • : koren CompositeNode
  • : nivo stranice CompositeNode
  • RichText: blok teksta CompositeNode
  • Vodič za programere
 Српски