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 когда у узла нет дочерних элементов. Всегда проверяйте перед разыменованием их.


См. также

 Русский