كيفية استخدام HTML Tokenizer في Python
المجزئ في Aspose.HTML FOSS لـ Python يحول الترميز إلى تدفق من الرموز المعرفة وفقًا للمعايير — مفيد للlinters، وsanitizer pre-passes، وأي أداة تفحص الترميز أسفل مستوى الشجرة. هذا الدليل يغطي نقاط دخول التجزئة، مفردات الرموز، والحالات، باستخدام 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.tokenizer import Tokenizer, TokenizerStateالخطوة 3: تجزئة الترميز
Tokenizer.tokenize() يعالج الإدخال الكامل؛ Tokenizer.tokenize_fragment() تطبق قواعد الشظايا. يحتوي الدفق على رموز typed: StartTagToken و EndTagToken (مع سمات)، CharacterToken للنص، CommentToken، DoctypeToken، وأخيرًا EofToken.
الخطوة 4: التحكم في الحالة الأولية
TokenizerState يعكس آلة الحالة الخاصة بالمواصفة. بالنسبة للإدخال الحساس للسياق — المحتوى الذي قد يظهر داخل <script> أو <style> — عيّن الحالة الأولية المطابقة باستخدام Tokenizer.set_state() قبل tokenizing.
الخطوة 5: حل character references
تُحل المراجع الحرفية المسماة والعددية عبر resolve_named_char_ref()، resolve_numeric_char_ref()، وfind_named_char_ref_match() — مدعومة بجدول named-reference الكامل.
المشكلات الشائعة والحلول
يتجزأ محتوى السكريبت أو النمط كعلامات. كانت الحالة الأولية خاطئة للسياق؛ اضبطها باستخدام set_state().
تظهر الكيانات غير محلولة في المخرجات. يجب على مستهلكي النص الخام تشغيل محللات الإشارة إلى الأحرف؛ الحل واضح في هذا المستوى.
إخراج الجزء يختلف عن التحليل الكامل. قواعد تجزئة الجزء تختلف عن قصد — استخدم tokenize() للمستندات الكاملة.
الأسئلة المتكررة
هل يمكنني استهلاك الرموز دون بناء شجرة؟
نعم — تدفق الرموز هو مخرج عام، مستقل عن بناء الشجرة.
ما هي أنواع الرموز الموجودة؟
StartTagToken, EndTagToken, CharacterToken, CommentToken, DoctypeToken, و EofToken.
هل حالات المحلل اللغوي هي الحالات القياسية؟
نعم — TokenizerState يُنمذج آلة الحالة للمواصفة.