CompositeNode — Aspose.Note FOSS for Python API Reference

Добавя node като първи директен дъщерен елемент. Връща node.

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

CompositeNode разширява Node с възможност да притежава дъщерни възли. Всички структурни типове възли в модела на документа (Document, Page, Outline, OutlineElement, RichText, Image, Table, TableRow, TableCell, AttachedFile) наследяват от CompositeNode. Никога не създавате инстанция на CompositeNode директно.


Example

FirstChild и LastChild са None, когато възелът няма деца. Винаги проверявайте преди да ги достъпвате.

ExampleExampleExampleExample
ParentNode`NodeNone`Example
Document`DocumentNone`Example

Page: CompositeNode на ниво страница

ExampleExampleExampleExample
FirstChild`NodeNone`Example
LastChild`NodeNone`Example

Example

AppendChildLast(node)

composite.AppendChildLast(node: Node) -> Node

Example node като последен директен дъщерен възел. Задава node.ParentNode = self. Връща node.


AppendChildFirst(node)

composite.AppendChildFirst(node: Node) -> Node

Example node като първи директен дъщерен възел. Връща node.


InsertChild(index, node)

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

Example node на позиция index в списъка с деца. Връща node.


RemoveChild(node)

composite.RemoveChild(node: Node) -> None

Example node от списъка с деца и множества node.ParentNode = None.


GetChildNodes(node_type)

composite.GetChildNodes(node_type: type) -> list

Рекурсивно претърсва цялото поддърво (в дълбочина, включително self) и връща всички възли, съвпадащи node_type. Това е основният начин за събиране на всички екземпляри на даден клас в което и да е поддърво.


Example

for child in composite:
    ...

Итерация на CompositeNode връща неговия само директните деца. Използвайте GetChildNodes() за дълбоко търсене.


API справка за класа CompositeNode в aspose-note v26.3.1. Базов клас за всички възли на документа, които могат да съдържат дъщерни възли.

Повдига се, когато LoadOptions.DocumentPassword е зададен. Криптирани (защитени с парола) документи не се поддържат във версия v26.3.1.

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

Съдържание само за четене: Bytes и FileName се извличат директно от MS-ONE бинарния файл. В версия v26.3.1 няма API за замяна на вградените данни на файла.

FirstChild и LastChild са None когато възелът няма деца. Винаги проверявайте преди да ги достъпвате.


Вижте също

 Български