كيفية العمل مع DOM في Python
Aspose.HTML FOSS لنماذج Python HTML كـ DOM قائم على المعايير: Document ينشئ العقد، Element يدير السمات، وNode يوفر عمليات الشجرة. هذا الدليل يبني شجرة صغيرة ويقرأ هيكلها مرة أخرى، باستخدام pip للتثبيت.
دليل خطوة بخطوة
الخطوة 1: تثبيت الحزمة
تثبيت الحزمة:
git clone https://github.com/aspose-html-foss/Aspose.HTML-FOSS-for-Python.git
cd Aspose.HTML-FOSS-for-Python
pip install -e .ثم أكد البيانات الوصفية للحزمة:
pip show aspose-html-fossالخطوة 2: استيراد الفئات المطلوبة
from aspose_html.dom import Documentالخطوة 3: إنشاء مستند وعنصر
Document هو مصنع العقد؛ create_element() يُعيد عنصرًا جديدًا تُرفقه بـ append_child():
doc = Document()
el = doc.create_element("div")
doc.append_child(el)الخطوة 4: تعيين السمات
set_attribute() يكتب سمات العلامة؛ الفئات والمعرفات تُدير مطابقة CSS لاحقًا:
el.set_attribute("class", "foo")
el.set_attribute("id", "bar")الخطوة 5: قراءة البنية مرة أخرى
get_element_by_id() يسترجع العنصر، get_attribute() يُعيد سماته، وhas_child_nodes() يؤكد البنية:
found = doc.get_element_by_id("bar")
print(found.get_attribute("class"))
print(doc.has_child_nodes())المشكلات الشائعة والحلول
البحث حسب المعرف لا يُعيد أي شيء. العنصر id يجب تعيين السمة قبل get_element_by_id() يتم استدعاؤه، ويجب أن يكون العنصر مرفقًا بشجرة المستند.
قراءات السمة تُعيد قيمًا غير متوقعة. get_attribute() يعيد ما تم تعيينه آخرًا بـ set_attribute(); تحقق من الأخطاء المطبعية في أسماء السمات — هي سلاسل نصية عادية.
العُقد التي تم إنشاؤها من مستند آخر تتصرف بشكل غير صحيح. العُقَد ذات نطاق مستند. أنشئها عبر نفس Document, أو انقلها باستخدام import_node()/adopt_node().
الأسئلة المتكررة
ما أنواع العُقَد التي يمكن لكائن Document إنشاؤها؟
العناصر، وعُقَد النص، والتعليقات، وقطعات المستند — عبر create_element()، create_text_node()، create_comment()، وcreate_document_fragment().
كيف يمكنني نقل أو إزالة العُقَد الموجودة؟
استخدم عمليات Node: insert_before()، remove_child()، replace_child()، وclone_node().
هل يمكنني تحليل الترميز الموجود بدلاً من بناء الأشجار يدوياً؟
نعم — HTMLDocument.parse() للصفحات وHTMLDocument.parse_fragment() للمقاطع تنتج نفس نوع الشجرة.