Introduction

La couche DOM est le cœur de Aspose.HTML FOSS pour Python. Elle modélise une page HTML comme le font les normes — sous forme d’arbre de nœuds Document, Element, Text, Comment et DocumentFragment — et vous fournit les opérations pour construire, inspecter et réarranger cet arbre depuis du code Python, sans navigateur dans la boucle.

Cet article parcourt les principales fonctionnalités du DOM: création de nœuds, gestion des attributs, déplacement de sous-arbres avec les opérations Node, analyse de fragments, et recherche à nouveau des éléments une fois l’arbre construit. Tout ce qui est présenté ici est fourni dans le package aspose-html-foss sur PyPI, est sous licence MIT, et s’exécute en pure Python à partir de la version 3.10 ou ultérieure.


Fonctionnalités clés

Créer des documents et des éléments

Document est la fabrique de nœuds: create_element() pour les éléments, create_text_node() pour le texte, create_comment() pour les commentaires, et create_document_fragment() pour les conteneurs légers. Les nouveaux nœuds s’attachent à l’arbre avec append_child():

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

Gérer les attributs

Les attributs font un aller-retour via Element.set_attribute(), get_attribute(), has_attribute() et remove_attribute(). La classe Attr modélise les nœuds d’attribut individuels lorsque vous en avez besoin sous forme d’objets plutôt que de chaînes:

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)

Opérations d’arbre sur le nœud

Chaque nœud hérite de la boîte à outils d’arbre standard de Node: insert_before(), remove_child(), replace_child(), clone_node() et contains() pour les modifications et vérifications de structure, plus child_nodes, parent_node et first_child pour le parcours, et text_content pour lire ou assigner le texte d’un sous-arbre. get_root_node() et has_child_nodes() répondent directement aux questions structurelles courantes.

Analyser les fragments et le balisage adjacent

HTMLDocument.parse() gère les pages complètes et HTMLDocument.parse_fragment() gère le balisage partiel. Pour une insertion chirurgicale relative à un élément existant, Element fournit insert_adjacent_html(), insert_adjacent_text() et insert_adjacent_element() — l’insertion standard à quatre positions API. Document.import_node() et adopt_node() déplacent les nœuds entre les documents.

Rechercher et lire à nouveau

Document.get_element_by_id() récupère un élément par son attribut id. Combiné à l’accès aux styles calculés depuis la couche CSSOM, vous pouvez vérifier ce qu’un sous-arbre contient et comment il sera stylisé:

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

Démarrage rapide

Installez depuis PyPI:

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

Construisez un petit arbre, étiquetez-le avec des attributs et confirmez la structure:

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

Aspose.HTML FOSS pour Python est sous licence MIT — gratuit pour une utilisation commerciale, la modification et la redistribution. Le code se trouve sur GitHub, et les versions sont publiées sur PyPI en tant que aspose-html-foss.


Premiers pas

Ressources associées