Introduzione

Il livello DOM è il nucleo di Aspose.HTML FOSS per Python. Modella una pagina HTML come fanno gli standard — come un albero di nodi Document, Element, Text, Comment e DocumentFragment — e ti fornisce le operazioni per costruire, ispezionare e riorganizzare quell’albero dal codice Python, senza un browser in ciclo.

Questo post esamina le principali funzionalità del DOM: creare nodi, gestire attributi, spostare sottoalberi con le operazioni Node, analizzare frammenti e ritrovare gli elementi una volta che l’albero è stato costruito. Tutto ciò che è mostrato qui è incluso nel pacchetto aspose-html-foss su PyPI, è rilasciato sotto licenza MIT e gira in puro Python nella versione 3.10 o successive.


Caratteristiche principali

Creare documenti ed elementi

Document è la fabbrica di nodi: create_element() per gli elementi, create_text_node() per il testo, create_comment() per i commenti e create_document_fragment() per contenitori leggeri. I nuovi nodi si collegano all’albero con append_child():

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

Gestire gli attributi

Gli attributi viaggiano di andata e ritorno attraverso Element.set_attribute(), get_attribute(), has_attribute() e remove_attribute(). La classe Attr modella i nodi attributo individuali quando li serve come oggetti anziché come stringhe:

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)

Operazioni ad albero sul nodo

Ogni nodo eredita il toolkit ad albero standard da Node: insert_before(), remove_child(), replace_child(), clone_node() e contains() per modifiche e controlli della struttura, più child_nodes, parent_node e first_child per l’attraversamento, e text_content per leggere o assegnare il testo di un sottoalbero. get_root_node() e has_child_nodes() rispondono direttamente alle domande strutturali comuni.

Analizza frammenti e markup adiacente

HTMLDocument.parse() gestisce pagine complete e HTMLDocument.parse_fragment() gestisce markup parziale. Per inserimenti chirurgici relativi a un elemento esistente, Element fornisce insert_adjacent_html(), insert_adjacent_text() e insert_adjacent_element() — il classico inserimento a quattro posizioni API. Document.import_node() e adopt_node() spostano i nodi tra documenti.

Cerca e leggi indietro

Document.get_element_by_id() recupera un elemento tramite il suo attributo id. In combinazione con l’accesso allo stile calcolato dal livello CSSOM, è possibile verificare cosa contiene un sottoalbero e come verrà stilizzato:

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

Avvio rapido

Installa da PyPI:

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

Crea un piccolo albero, etichettalo con attributi e conferma la struttura:

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

Open Source e Licenze

Aspose.HTML FOSS per Python è con licenza MIT — libero per uso commerciale, modifica e ridistribuzione. Il codice è ospitato su GitHub, e le versioni sono pubblicate su PyPI come aspose-html-foss.


Guida introduttiva

Risorse correlate