HTML محلل الرموز

HTML محلل الرموز

HTML المُجزئ

المُجزئ هو المرحلة الأولى من تحليل HTML: يحول نص العلامات إلى تدفق من الرموز المعرفة وفقًا للمعايير. إنه API عام، لذا يمكن للأدوات التي تهتم بالرموز بدلاً من الأشجار — أدوات الفحص، عمليات التنظيف المسبقة، مبرّزات الصياغة — استهلاك التدفق مباشرة.


تجزئة العلامات

Tokenizer.tokenize() يعالج الإدخال الكامل؛ Tokenizer.tokenize_fragment() يطبق قواعد تجزئة القطع. كلاهما ينتج مفردات الرموز القياسية.

فئات الرموز

كل رمز هو كائن مُصنّف: StartTagToken و EndTagToken للوسوم (مع الصفات)، CharacterToken للنص، CommentToken، DoctypeToken، و EofToken تدل على نهاية الإدخال.

حالات المُجزئ

TokenizerState يُنمذج آلة الحالة للمعايير — نفس الحالات التي تسميها المواصفة — وTokenizer.set_state() يتيح للمتصلين بالجزء والحساسين للسياق البدء بالحالة الصحيحة.

الإشارات الحرفية

الإشارات الحرفية المسماة والعددية تُحل عبر resolve_named_char_ref()، resolve_numeric_char_ref()، وfind_named_char_ref_match() — جدول الإشارات المسماة الكامل، وليس مجموعة فرعية مختصرة.


نصائح وأفضل الممارسات

  • استخدم tokenize_fragment() بالحالة الأولية الصحيحة عند تجزئة المحتوى الذي قد يظهر داخل عنصر محدد
  • عامل EofToken كإشارة النهاية الحاسمة بدلاً من استنزاف المكرّر عبر الاستثناء
  • بالنسبة للمنقّيات، فحص خصائص StartTagToken على مستوى الرمز قبل بناء أي شجرة

المشكلات الشائعة

مشكلةسببإصلاح
محتوى السكريبت/النمط يُجزّأ كعلاماتحالة أولية خاطئة للسياققم بتعيين TokenizerState المناسب عبر set_state()
الكيانات تظهر غير محلولةاستهلاك النص الخام دون حل المراجعاستخدم وظائف char-ref resolver
إخراج الجزء يختلف عن التحليل الكاملقواعد الجزء تختلف عن قصداستخدم tokenize() للوثائق الكاملة

FAQ

هل يمكنني استخدام الـ tokenizer دون بناء شجرة؟

نعم — تدفق الرموز هو إخراج عام ومستقل.

هل حالات الـ tokenizer هي الحالات القياسية؟

TokenizerState يعكس آلة الحالات في المواصفات ويمكن ضبطه عبر set_state().

كيف يتم التعامل مع المراجع الرمزية المسماة؟

من خلال resolve_named_char_ref() وfind_named_char_ref_match() مقابل جدول المراجع المسماة الكامل.


ملخص API Reference

فئة/طريقةوصف
Tokenizer.tokenizeتقسم الإدخال بالكامل إلى رموز
Tokenizer.tokenize_fragmentتقسم إلى رموز باستخدام قواعد الجزء
Tokenizer.set_stateضبط حالة المُحلل اللغوي الأولية
StartTagTokenعلامة البداية مع السمات
TokenizerStateحالات آلة الحالة للمعايير
resolve_named_char_refحل مرجع حرف مسمى

انظر أيضاً

 العربية