Introducción

La capa DOM es el núcleo de Aspose.HTML FOSS para Python. Modela una página HTML de la misma manera que lo hacen los estándares — como un árbol de nodos Document, Element, Text, Comment y DocumentFragment — y le brinda las operaciones para construir, inspeccionar y reorganizar ese árbol desde código Python, sin necesidad de un navegador en el proceso.

Esta publicación recorre las principales características del DOM: crear nodos, gestionar atributos, mover subárboles con operaciones Node, analizar fragmentos y volver a buscar elementos una vez que el árbol está construido. Todo lo que se muestra aquí se entrega en el paquete aspose-html-foss en PyPI, tiene licencia MIT y se ejecuta en puro Python a partir de la versión 3.10 o posterior.


Características clave

Crear documentos y elementos

Document es la fábrica de nodos: create_element() para elementos, create_text_node() para texto, create_comment() para comentarios y create_document_fragment() para contenedores ligeros. Los nuevos nodos se adjuntan al árbol con append_child():

from aspose_html.dom import Document
doc = Document()
el = doc.create_element("div")
doc.append_child(el)

Gestionar atributos

Los atributos hacen un recorrido de ida y vuelta a través de Element.set_attribute(), get_attribute(), has_attribute() y remove_attribute(). La clase Attr modela nodos de atributo individuales cuando los necesitas como objetos en lugar de cadenas:

from aspose_html.dom import Document
doc = Document()
el = doc.create_element("div")
el.set_attribute("class", "foo")
el.set_attribute("id", "bar")
doc.append_child(el)

Operaciones de árbol en nodo

Cada nodo hereda el conjunto de herramientas estándar de árbol de Node: insert_before(), remove_child(), replace_child(), clone_node() y contains() para cambios y verificaciones de la estructura, además de child_nodes, parent_node y first_child para el recorrido, y text_content para leer o asignar el texto de un subárbol. get_root_node() y has_child_nodes() responden directamente a las preguntas estructurales comunes.

Analizar fragmentos y marcado adyacente

HTMLDocument.parse() gestiona páginas completas y HTMLDocument.parse_fragment() gestiona marcado parcial. Para una inserción quirúrgica relativa a un elemento existente, Element proporciona insert_adjacent_html(), insert_adjacent_text() y insert_adjacent_element() — la inserción estándar de cuatro posiciones API. Document.import_node() y adopt_node() mueven nodos entre documentos.

Buscar y volver a leer

Document.get_element_by_id() recupera un elemento por su atributo id. Combinado con el acceso al estilo computado desde la capa CSSOM, puedes verificar qué contiene un subárbol y cómo será estilizado:

from aspose_html.dom import Document
from aspose_html.cssom import CSSStyleSheet
doc = Document()
el = doc.create_element("div")
el.set_attribute("id", "bar")
doc.append_child(el)
sheet = CSSStyleSheet()
sheet.replace_sync("#bar { color: blue }")
doc.attach_style_sheet(sheet)
style = el.get_computed_style()
print(style.get_property_value("color"))

Inicio rápido

Instalar desde PyPI:

asposefoss/html is not yet published — build from source until it ships. See the project README for build instructions.

Construye un árbol pequeño, etiquétalo con atributos y confirma la estructura:

from aspose_html.dom import Document

doc = Document()
container = doc.create_element("div")
container.set_attribute("id", "content")
doc.append_child(container)

child = doc.create_element("p")
container.append_child(child)

print(container.has_child_nodes())
print(doc.get_element_by_id("content").get_attribute("id"))

Código abierto y licencias

Aspose.HTML FOSS para Python tiene licencia MIT — libre para uso comercial, modificación y redistribución. El código está en GitHub, y los lanzamientos se publican en PyPI como aspose-html-foss.


Primeros pasos

Recursos relacionados