Cum să lucrați cu DOM în Python

Cum să lucrați cu DOM în Python

Aspose.HTML FOSS pentru modele Python HTML ca un DOM bazat pe standarde: Document creează noduri, Element gestionează atributele și Node furnizează operații de arbore. Acest ghid construiește un arbore mic și citește structura acestuia înapoi, utilizând pip pentru instalare.

Ghid pas cu pas

Pasul 1: Instalează pachetul

Instalează pachetul:

git clone https://github.com/aspose-html-foss/Aspose.HTML-FOSS-for-Python.git
cd Aspose.HTML-FOSS-for-Python
pip install -e .

Apoi confirmă metadatele pachetului:

pip show aspose-html-foss

Pasul 2: Importă clasele necesare

from aspose_html.dom import Document

Pasul 3: Creează un document și un element

Document este fabrica de noduri; create_element() returnează un element nou pe care îl atașezi cu append_child():

doc = Document()
el = doc.create_element("div")
doc.append_child(el)

Pasul 4: Setează atributele

set_attribute() scrie atributele de markup; clasele și id-urile determină potrivirea ulterioară a CSS:

el.set_attribute("class", "foo")
el.set_attribute("id", "bar")

Pasul 5: Citește structura înapoi

get_element_by_id() recuperează elementul, get_attribute() returnează atributele sale și has_child_nodes() confirmă structura:

found = doc.get_element_by_id("bar")
print(found.get_attribute("class"))
print(doc.has_child_nodes())

Probleme comune și remedii

Căutarea după id nu returnează nimic. Elementului id atributul trebuie să fie setat înainte de get_element_by_id() este apelat, iar elementul trebuie să fie atașat la arborele documentului.

Citirile atributului returnează valori neașteptate. get_attribute() returnează ce a fost setat ultima dată cu set_attribute(); verificați greșelile de tipar în numele atributelor — acestea sunt șiruri simple.

Nodurile create dintr-un alt document se comportă incorect. Nodurile sunt limitate la document. Creați-le prin același Document, sau transferaţi-le cu import_node()/adopt_node().

Întrebări frecvente

Ce tipuri de noduri poate crea Documentul?

Elemente, noduri de text, comentarii și fragmente de document — prin create_element(), create_text_node(), create_comment() și create_document_fragment().

Cum pot muta sau elimina nodurile existente?

Utilizați operațiile Node: insert_before(), remove_child(), replace_child() și clone_node().

Pot să analizez marcajul existent în loc să construiesc arbori manual?

Da — HTMLDocument.parse() pentru pagini și HTMLDocument.parse_fragment() pentru fragmente produc același tip de arbore.

Vezi și:

 Română