Hoe te werken met de DOM in Python

Hoe te werken met de DOM in Python

Aspose.HTML FOSS voor Python-modellen HTML als een op standaarden gebaseerd DOM: Document maakt knooppunten, Element beheert attributen, en Node levert boomoperaties. Deze gids bouwt een kleine boom en leest de structuur terug, met pip voor installatie.

Stapsgewijze gids

Stap 1: Installeer het pakket

Installeer het pakket:

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

Bevestig vervolgens de pakketmetadata:

pip show aspose-html-foss

Stap 2: Vereiste klassen importeren

from aspose_html.dom import Document

Stap 3: Maak een document en een element

Document is de nodefabriek; create_element() retourneert een nieuw element dat je koppelt met append_child():

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

Stap 4: Attributen instellen

set_attribute() schrijft markup-attributen; klassen en id’s sturen later CSS matching aan:

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

Stap 5: Structuur teruglezen

get_element_by_id() haalt het element op, get_attribute() geeft de attributen terug, en has_child_nodes() bevestigt de structuur:

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

Veelvoorkomende problemen en oplossingen

Lookup by id returns nothing. → Zoeken op id levert niets op. The element’s → Het element id attribute must be set before → attribuut moet worden ingesteld vóór get_element_by_id() is called, and the element must be attached to the document tree. → wordt aangeroepen, en het element moet aan de documentboom worden gekoppeld.

Attribute reads return unexpected values. → Attribuutlezingen geven onverwachte waarden terug. get_attribute() returns what was last set with → geeft terug wat het laatst is ingesteld met set_attribute(); check for typos in attribute names — they are plain strings. → ; controleer op typefouten in attribuutnamen — het zijn platte strings.

Nodes created from another document misbehave. → Knopen die uit een ander document zijn gemaakt, gedragen zich onjuist. Nodes zijn documentgebonden. Maak ze via dezelfde Document, of draag ze over met import_node()/adopt_node().

Veelgestelde vragen

Welke node-typen kan Document aanmaken?

Elementen, tekst-nodes, commentaren en documentfragmenten — via create_element(), create_text_node(), create_comment() en create_document_fragment().

Hoe verplaats of verwijder ik bestaande nodes?

Gebruik de Node bewerkingen: insert_before(), remove_child(), replace_child() en clone_node().

Kan ik bestaande markup parseren in plaats van handmatig bomen te bouwen?

Ja — HTMLDocument.parse() voor pagina’s en HTMLDocument.parse_fragment() voor fragmenten produceren dezelfde soort boom.

Zie ook

 Nederlands