Вступ

Шар DOM є ядром Aspose.HTML FOSS для Python. Він моделює сторінку HTML так, як це роблять стандарти — у вигляді дерева вузлів Document, Element, Text, Comment та DocumentFragment — і надає вам операції для створення, інспекції та перестановки цього дерева з коду Python, без участі браузера.

У цьому дописі розглядаються основні можливості DOM: створення вузлів, керування атрибутами, переміщення піддерев за допомогою операцій Node, розбір фрагментів і повторний пошук елементів після побудови дерева. Все, що показано тут, постачається в пакеті aspose-html-foss на PyPI, має ліцензію MIT і працює у чистому Python з версії 3.10 і вище.


Ключові особливості

Створення документів і елементів

Document — це фабрика вузлів: create_element() для елементів, create_text_node() для тексту, create_comment() для коментарів і create_document_fragment() для легковагових контейнерів. Нові вузли приєднуються до дерева за допомогою append_child():

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

Керування атрибутами

Атрибути проходять через Element.set_attribute(), get_attribute(), has_attribute() та remove_attribute(). Клас Attr моделює окремі вузли атрибутів, коли потрібні вони як об’єкти, а не рядки:

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)

Операції над деревом у вузлі

Кожен вузол успадковує стандартний набір інструментів роботи з деревом від Node: insert_before(), remove_child(), replace_child(), clone_node() та contains() для змін і перевірок структури, а також child_nodes, parent_node і first_child для обходу, і text_content для читання або призначення тексту піддерева. get_root_node() і has_child_nodes() безпосередньо відповідають на типові структурні питання.

Розбір фрагментів та суміжної розмітки

HTMLDocument.parse() обробляє повні сторінки, а HTMLDocument.parse_fragment() — часткову розмітку. Для точкового вставлення відносно існуючого елементу Element забезпечує insert_adjacent_html(), insert_adjacent_text() та insert_adjacent_element() — стандартне чотири-позиційне вставлення API. Document.import_node() і adopt_node() переміщують вузли між документами.

Пошук і зворотне читання

Document.get_element_by_id() отримує елемент за його атрибутом id. У поєднанні з доступом до обчислених стилів з шару CSSOM, ви можете перевірити, що містить піддерево і як воно буде стилізовано:

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

Швидкий старт

Встановити з PyPI:

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

Створіть невелике дерево, позначте його атрибутами та підтвердьте структуру:

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

Відкритий код та ліцензування

Aspose.HTML FOSS для Python є під ліцензією MIT — безкоштовний для комерційного використання, модифікації та розповсюдження. Код розміщений на GitHub, а випуски публікуються в PyPI як aspose-html-foss.


Перші кроки

Пов’язані ресурси