CompositeNode

CompositeNode — Aspose.Note FOSS for Python API Reference

Clase: CompositeNode

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

CompositeNode extiende Node con la capacidad de poseer nodos hijos. Todos los tipos de nodos estructurales en el modelo de documento (Document, Page, Outline, OutlineElement, RichText, Image, Table, TableRow, TableCell, AttachedFile) heredan de CompositeNode. Nunca instancias CompositeNode directamente.


Examples

Hereda de Node

ExamplesExamplesExamplesExamples
ParentNode`NodeNone`Examples
Document`DocumentNone`Examples

Propiedades de acceso a hijos

ExamplesExamplesExamplesExamples
FirstChild`NodeNone`Examples
LastChild`NodeNone`Examples

Examples

AppendChildLast(node)

composite.AppendChildLast(node: Node) -> Node

Examples node como el último hijo directo. Establece node.ParentNode = self. Devuelve node.


AppendChildFirst(node)

composite.AppendChildFirst(node: Node) -> Node

Examples node como el primer hijo directo. Devuelve node.


InsertChild(index, node)

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

Examples node en la posición index en la lista de hijos. Devuelve node.


RemoveChild(node)

composite.RemoveChild(node: Node) -> None

Examples node de la lista de hijos y establece node.ParentNode = None.


GetChildNodes(node_type)

composite.GetChildNodes(node_type: type) -> list

Busca recursivamente en todo el subárbol (en profundidad, incluyendo self) y devuelve todos los nodos que coinciden con node_type. Esta es la forma principal de recopilar todas las instancias de una clase dada dentro de cualquier subárbol.


Examples

for child in composite:
    ...

Iterar un CompositeNode devuelve su solo hijos directos. Usar GetChildNodes() para una búsqueda profunda.


Ejemplo de uso

Recorrer hijos directos vs búsqueda profunda

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

Construir un documento programáticamente

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

Seguridad contra None

FirstChild y LastChild son None cuando el nodo no tiene hijos. Siempre verifica antes de desreferenciarlos.


Ver también

 Español