Inleiding

De DOM-laag is de kern van Aspose.HTML FOSS voor Python. Het modelleert een HTML pagina op de manier zoals de standaarden dat doen — als een boom van Document, Element, Text, Comment en DocumentFragment knooppunten — en biedt je de bewerkingen om die boom te bouwen, te inspecteren en te herschikken vanuit Python code, zonder een browser in de lus.

Dit bericht loopt de belangrijkste DOM-functies door: knooppunten aanmaken, attributen beheren, subbomen verplaatsen met Node bewerkingen, fragmenten parseren, en elementen opnieuw opzoeken zodra de boom is opgebouwd. Alles wat hier wordt getoond wordt geleverd in het aspose-html-foss pakket op PyPI, heeft een MIT-licentie, en draait in pure Python op versie 3.10 of later.


Belangrijkste functies

Documenten en elementen aanmaken

Document is de knoopfabriek: create_element() voor elementen, create_text_node() voor tekst, create_comment() voor commentaren, en create_document_fragment() voor lichtgewicht containers. Nieuwe knopen worden aan de boom gekoppeld met append_child():

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

Attributen beheren

Attributen maken een round-trip via Element.set_attribute(), get_attribute(), has_attribute() en remove_attribute(). De Attr klasse modelleert individuele attribuutknopen wanneer je ze als objecten nodig hebt in plaats van strings:

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)

Boomoperaties op knoop

Elke knoop erft de standaard boomtoolkit van Node: insert_before(), remove_child(), replace_child(), clone_node() en contains() voor structuurwijzigingen en controles, plus child_nodes, parent_node en first_child voor traversatie, en text_content voor het lezen of toewijzen van de tekst van een subboom. get_root_node() en has_child_nodes() beantwoorden de veelvoorkomende structurele vragen direct.

Fragmenten parseren en aangrenzende opmaak

HTMLDocument.parse() verwerkt volledige pagina’s en HTMLDocument.parse_fragment() verwerkt gedeeltelijke opmaak. Voor chirurgische invoeging ten opzichte van een bestaand element biedt Element insert_adjacent_html(), insert_adjacent_text() en insert_adjacent_element() — de standaard vier-positie invoeging API. Document.import_node() en adopt_node() verplaatsen knopen tussen documenten.

Opzoeken en teruglezen

Document.get_element_by_id() haalt een element op via zijn id attribuut. In combinatie met toegang tot berekende stijlen vanuit de CSSOM-laag kun je verifiëren wat een subboom bevat en hoe deze gestyled zal worden:

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

Snelle start

Installeer vanaf PyPI:

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

Bouw een kleine boom, label deze met attributen, en bevestig de structuur:

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 & licenties

Aspose.HTML FOSS voor Python is MIT-licentie — gratis voor commercieel gebruik, aanpassing en herdistributie. De code bevindt zich op GitHub, en releases worden gepubliceerd op PyPI als aspose-html-foss.


Aan de slag

Gerelateerde bronnen