Úvod

Vrstva DOM je jádrem Aspose.HTML FOSS pro Python. Modeluje stránku HTML stejným způsobem, jak to dělají standardy — jako strom Document, Element, Text, Comment a DocumentFragment uzlů — a poskytuje vám operace pro vytváření, prohlížení a přeskupování tohoto stromu z kódu Python, bez prohlížeče v cyklu.

Tento příspěvek prochází hlavními funkcemi DOM: vytváření uzlů, správu atributů, přesouvání podstromů pomocí operací Node, parsování fragmentů a opětovné vyhledávání prvků, jakmile je strom vytvořen. Vše, co je zde ukázáno, je součástí balíčku aspose-html-foss na PyPI, je licencováno pod MIT a běží v čistém Python verze 3.10 nebo novější.


Klíčové vlastnosti

Vytváření dokumentů a elementů

Document je továrna na uzly: create_element() pro elementy, create_text_node() pro text, create_comment() pro komentáře a create_document_fragment() pro lehké kontejnery. Nové uzly se připojují ke stromu pomocí append_child():

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

Správa atributů

Atributy procházejí přes Element.set_attribute(), get_attribute(), has_attribute() a remove_attribute(). Třída Attr modeluje jednotlivé uzly atributů, když je potřebujete jako objekty místo řetězců:

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)

Operace stromu na uzlu

Každý uzel dědí standardní sadu nástrojů pro stromy od Node: insert_before(), remove_child(), replace_child(), clone_node() a contains() pro změny a kontroly struktury, dále child_nodes, parent_node a first_child pro procházení a text_content pro čtení nebo přiřazení textu podstromu. get_root_node() a has_child_nodes() přímo odpovídají na běžné otázky týkající se struktury.

Rozebrat fragmenty a sousední značkování

HTMLDocument.parse() zpracovává kompletní stránky a HTMLDocument.parse_fragment() zpracovává částečné značkování. Pro chirurgické vložení relativně k existujícímu elementu Element poskytuje insert_adjacent_html(), insert_adjacent_text() a insert_adjacent_element() — standardní čtyřpozicové vložení API. Document.import_node() a adopt_node() přesouvají uzly mezi dokumenty.

Vyhledat a přečíst zpět

Document.get_element_by_id() získá element podle jeho atributu id. V kombinaci s přístupem k vypočtenému stylu z vrstvy CSSOM můžete ověřit, co podstrom obsahuje a jak bude stylován:

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

Rychlý start

Instalovat z PyPI:

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

Vytvořte malý strom, označte jej atributy a potvrďte strukturu:

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 a licencování

Aspose.HTML FOSS pro Python je licencována pod MIT — zdarma pro komerční použití, úpravy i redistribuci. Kód je umístěn na GitHub a vydání jsou publikována na PyPI jako aspose-html-foss.


Začínáme

Související zdroje