Einleitung

Die DOM-Schicht ist das Kernstück von Aspose.HTML FOSS für Python. Sie modelliert eine HTML-Seite so, wie es die Standards tun — als Baum von Document-, Element-, Text-, Comment- und DocumentFragment-Knoten — und stellt Ihnen die Operationen bereit, um diesen Baum aus Python-Code zu erstellen, zu inspizieren und neu anzuordnen, ohne dass ein Browser im Spiel ist.

Dieser Beitrag führt Sie durch die wichtigsten DOM-Funktionen: Erzeugen von Knoten, Verwalten von Attributen, Verschieben von Teilbäumen mittels Node-Operationen, Parsen von Fragmenten und erneutes Nachschlagen von Elementen, sobald der Baum aufgebaut ist. Alles, was hier gezeigt wird, ist im aspose-html-foss-Paket auf PyPI enthalten, ist unter der MIT-Lizenz veröffentlicht und läuft in reinem Python ab Version 3.10 oder höher.


Hauptfunktionen

Dokumente und Elemente erstellen

Document ist die Knotenfabrik: create_element() für Elemente, create_text_node() für Text, create_comment() für Kommentare und create_document_fragment() für leichte Container. Neue Knoten werden mit append_child() an den Baum angehängt:

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

Attribute verwalten

Attribute durchlaufen Element.set_attribute(), get_attribute(), has_attribute() und remove_attribute(). Die Klasse Attr modelliert einzelne Attributknoten, wenn Sie sie als Objekte statt als Zeichenketten benötigen:

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)

Baumoperationen am Knoten

Jeder Knoten erbt das Standard-Baum-Toolkit von Node: insert_before(), remove_child(), replace_child(), clone_node() und contains() für Strukturänderungen und Prüfungen, plus child_nodes, parent_node und first_child für Traversierung sowie text_content zum Lesen oder Zuweisen des Textes eines Teilbaums. get_root_node() und has_child_nodes() beantworten die häufigen strukturellen Fragen direkt.

Fragmente und angrenzendes Markup parsen

HTMLDocument.parse() verarbeitet komplette Seiten und HTMLDocument.parse_fragment() verarbeitet partielles Markup. Für eine chirurgische Einfügung relativ zu einem bestehenden Element bietet Element insert_adjacent_html(), insert_adjacent_text() und insert_adjacent_element() — die standardmäßige Vier-Positions-Einfügung API. Document.import_node() und adopt_node() verschieben Knoten zwischen Dokumenten.

Nachschlagen und zurücklesen

Document.get_element_by_id() ruft ein Element über sein id-Attribut ab. Kombiniert mit dem Zugriff auf berechnete Stile aus der CSSOM-Schicht können Sie überprüfen, was ein Teilbaum enthält und wie er gestaltet wird:

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

Schnellstart

Installieren von PyPI:

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

Erstelle einen kleinen Baum, versehe ihn mit Attributen und bestätige die Struktur:

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

Aspose.HTML FOSS für Python ist unter der MIT-Lizenz — kostenlos für kommerzielle Nutzung, Modifikation und Weiterverteilung. Der Code befindet sich auf GitHub, und die Releases werden zu PyPI als aspose-html-foss veröffentlicht.


Erste Schritte

Verwandte Ressourcen