معرفی
لایه 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 قرار دارد و نسخهها به عنوان aspose-html-foss در PyPI منتشر میشوند.