Wprowadzenie

Warstwa DOM jest rdzeniem Aspose.HTML FOSS dla Python. Modeluje ona stronę HTML w sposób, w jaki robią to standardy — jako drzewo węzłów Document, Element, Text, Comment i DocumentFragment — i zapewnia operacje umożliwiające budowanie, przeglądanie i przearanżowywanie tego drzewa z kodu Python, bez przeglądarki w pętli.

Ten wpis przechodzi przez główne funkcje DOM: tworzenie węzłów, zarządzanie atrybutami, przemieszczanie poddrzew przy użyciu operacji Node, parsowanie fragmentów oraz ponowne wyszukiwanie elementów po zbudowaniu drzewa. Wszystko, co tutaj pokazano, jest dostarczane w pakiecie aspose-html-foss na PyPI, jest licencjonowane na licencji MIT i działa w czystym Python od wersji 3.10 lub nowszej.


Kluczowe funkcje

Tworzenie dokumentów i elementów

Document jest fabryką węzłów: create_element() dla elementów, create_text_node() dla tekstu, create_comment() dla komentarzy i create_document_fragment() dla lekkich kontenerów. Nowe węzły dołączają do drzewa za pomocą append_child():

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

Zarządzanie atrybutami

Atrybuty przechodzą w dwie strony przez Element.set_attribute(), get_attribute(), has_attribute() i remove_attribute(). Klasa Attr modeluje pojedyncze węzły atrybutów, gdy potrzebujesz ich jako obiektów, a nie jako ciągów znaków:

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)

Operacje na drzewie węzła

Każdy węzeł dziedziczy standardowy zestaw narzędzi drzewa od Node: insert_before(), remove_child(), replace_child(), clone_node() i contains() do zmian i sprawdzania struktury, plus child_nodes, parent_node i first_child do przeglądania oraz text_content do odczytywania lub przypisywania tekstu poddrzewa. get_root_node() i has_child_nodes() odpowiadają bezpośrednio na typowe pytania strukturalne.

Parsowanie fragmentów i sąsiadującego markupu

HTMLDocument.parse() obsługuje pełne strony, a HTMLDocument.parse_fragment() obsługuje częściowy markup. Do precyzyjnego wstawiania względem istniejącego elementu, Element zapewnia insert_adjacent_html(), insert_adjacent_text() i insert_adjacent_element() — standardowe czteropunktowe wstawianie API. Document.import_node() i adopt_node() przenoszą węzły między dokumentami.

Wyszukiwanie i odczyt zwrotny

Document.get_element_by_id() pobiera element na podstawie jego id atrybutu. W połączeniu z dostępem do stylu obliczonego z warstwy CSSOM, możesz zweryfikować, co zawiera poddrzewo i jak będzie stylowane:

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

Szybki start

Zainstaluj z PyPI:

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

Zbuduj małe drzewo, oznacz je atrybutami i potwierdź 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 i licencjonowanie

Aspose.HTML FOSS dla Python jest licencjonowany na zasadach MIT — wolny do użytku komercyjnego, modyfikacji i redystrybucji. Kod znajduje się na GitHub, a wydania są publikowane na PyPI jako aspose-html-foss.


Rozpoczęcie

Powiązane zasoby