مقدمة
طبقة 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.