نحوه استفاده از HTML Tree Builder در Python
ساخت درخت در Aspose.HTML FOSS برای Python الگوریتم استانداردها را اجرا میکند — حالتهای درج، بازیابی خطا، تشخیص ناهنجاریها و محتوای خارجی — با parse_html() به عنوان نقطه ورود یکبار صدا زدن و TreeBuilder که سازوکار را نمایان میکند. این راهنما خط لوله و رفتارهای آن را توضیح میدهد و برای نصب از 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 .گام 2: وارد کردن توابع مورد نیاز
from aspose_html.tree import parse_htmlگام 3: تجزیه نشانهگذاری به درخت
parse_html() توکنایزر و سازنده درخت را با هم اجرا میکند و درخت نهایی را بر میگرداند؛ parse_fragment() الگوریتم قطعه را نسبت به یک عنصر زمینه اعمال میکند. هر دو بهصورت داخلی TreeBuilder.run() را هدایت میکنند.
مرحله ۴: درک وضعیت ساخت
InsertionMode مدل ماشین حالت الگوریتم را شبیهسازی میکند، بههمراه StackOfOpenElements و TemplateInsertionModeStack که عناصر باز و حالتهای قالب را دقیقاً همانطور که مشخصات توصیف میکند، پیگیری میکنند.
مرحله ۵: تکیه بر بازیابی خطای استانداردها
عناصر قالببندی اشتباهچینشده از طریق run_adoption_agency_algorithm() با پیگیری ActiveFormattingList اصلاح میشوند؛ محتوای جدول نادرستموقعیتیافته از طریق get_foster_parent_location() بهعنوان والدین پرورشی عمل میکند؛ انواع سند (doctype) از طریق determine_quirks_mode() طبقهبندی میشوند؛ ویژگیهای SVG/MathML از طریق توابع adjust_*_attributes() تنظیم میشوند.
مسائل رایج و راهحلها
مارکآپ نامناسب بهجای خطا، یک درخت تولید میکند. بهصورت طراحیشده — الگوریتم استانداردها برای هر حالت خطا، بازیابی را تعریف میکند.
برچسبهای قالببندی بهصورت تکراری ظاهر میشوند. الگوریتم آژانس پذیرش پس از تو در توی نادرست، زمینه قالببندی را بازسازی میکند؛ خروجی با رفتار مرورگر مطابقت دارد.
محتوای جدول بهخارج از جدول منتقل شده است. پرورش فستِر محتواهای نادرست مکانیابی شده را جابجا کرد؛ تو در تویی را در مارکآپ منبع اصلاح کنید.
سوالات متداول
چه زمانی باید TreeBuilder را مستقیماً بهجای parse_html استفاده کنم؟
فقط وقتی که به بازنگری وضعیت ساخت نیاز دارید؛ parse_html() پردازش عادی را پوشش میدهد.
حالت quirks چگونه تعیین میشود؟
determine_quirks_mode() سند را بر اساس doctype آن طبقهبندی میکند.
آیا سازنده SVG و MathML را پشتیبانی میکند؟
بله — محتوای خارجی از طریق تنظیمکنندههای ویژگی با تشخیص نقطه یکپارچهسازی استانداردها عبور میکند.