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-fossStap 2: Vereiste klassen importeren
from aspose_html.dom import DocumentStap 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.