Wie man mit dem DOM in Python arbeitet

Wie man mit dem DOM in Python arbeitet

Aspose.HTML FOSS für Python-Modelle HTML als standardbasiertes DOM: Document erstellt Knoten, Element verwaltet Attribute und Node liefert Baumoperationen. Dieser Leitfaden erstellt einen kleinen Baum und liest seine Struktur wieder aus, wobei pip zur Installation verwendet wird.

Schritt-für-Schritt-Anleitung

Schritt 1: Paket installieren

Paket installieren:

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

Dann bestätigen Sie die Paketmetadaten:

pip show aspose-html-foss

Schritt 2: Erforderliche Klassen importieren

from aspose_html.dom import Document

Schritt 3: Ein Dokument und ein Element erstellen

Document ist die Node-Factory; create_element() liefert ein neues Element, das Sie mit append_child() anhängen:

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

Schritt 4: Attribute setzen

set_attribute() schreibt Markup-Attribute; Klassen und IDs steuern das spätere CSS-Matching:

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

Schritt 5: Struktur zurücklesen

get_element_by_id() ruft das Element ab, get_attribute() gibt dessen Attribute zurück und has_child_nodes() bestätigt die Struktur:

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

Häufige Probleme und Lösungen

Die Suche nach id liefert nichts. Des Elements id Attribut muss gesetzt werden, bevor get_element_by_id() aufgerufen wird, und das Element an den Dokumentbaum angehängt sein muss.

Attributauslesungen geben unerwartete Werte zurück. get_attribute() gibt zurück, was zuletzt gesetzt wurde mit set_attribute(); prüfen Sie auf Tippfehler in Attributnamen — sie sind einfache Zeichenketten.

Knoten, die aus einem anderen Dokument erstellt wurden, verhalten sich fehlerhaft. Knoten sind dokumentbezogen. Erstellen Sie sie über dieselbe Document, oder übertragen Sie sie mit import_node()/adopt_node().

Häufig gestellte Fragen

Welche Knotentypen kann Document erstellen?

Elemente, Textknoten, Kommentare und Dokumentfragmente — über create_element(), create_text_node(), create_comment() und create_document_fragment().

Wie kann ich vorhandene Knoten verschieben oder entfernen?

Verwenden Sie die Node-Operationen: insert_before(), remove_child(), replace_child() und clone_node().

Kann ich vorhandenes Markup parsen, anstatt Bäume manuell zu erstellen?

Ja — HTMLDocument.parse() für Seiten und HTMLDocument.parse_fragment() für Snippets erzeugen dieselbe Art von Baum.

Siehe auch

 Deutsch