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
| Examples | Examples | Examples | Examples |
|---|---|---|---|
ParentNode | `Node | None` | Examples |
Document | `Document | None` | Examples |
Propiedades de acceso a hijos
| Examples | Examples | Examples | Examples |
|---|---|---|---|
FirstChild | `Node | None` | Examples |
LastChild | `Node | None` | Examples |
Examples
AppendChildLast(node)
composite.AppendChildLast(node: Node) -> NodeExamples node como el último hijo directo. Establece node.ParentNode = self. Devuelve node.
AppendChildFirst(node)
composite.AppendChildFirst(node: Node) -> NodeExamples node como el primer hijo directo. Devuelve node.
InsertChild(index, node)
composite.InsertChild(index: int, node: Node) -> NodeExamples node en la posición index en la lista de hijos. Devuelve node.
RemoveChild(node)
composite.RemoveChild(node: Node) -> NoneExamples node de la lista de hijos y establece node.ParentNode = None.
GetChildNodes(node_type)
composite.GetChildNodes(node_type: type) -> listBusca 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
- Examples: clase base para todos los nodos de documento
- Examples: raíz
CompositeNode - Examples: a nivel de página
CompositeNode - RichText: bloque de texto
CompositeNode - Guía del Desarrollador