HTML מפצל

מפרק HTML

המפרק הוא שלב הראשון בניתוח HTML: הוא ממיר טקסט סימון לזרם של טוקנים המוגדרים לפי תקנים. הוא API ציבורי, ולכן כלים המתמקדים בטוקנים במקום עצים — לינטרים, קידומי ניקוי מראש, מדגישי תחביר — יכולים לצרוך את הזרם ישירות.


טוקניזציה של סימון

Tokenizer.tokenize() מעבד קלט מלא; Tokenizer.tokenize_fragment() מיישם כללי טוקניזציה של חלקים. שניהם פולטות את אוצר המילים הסטנדרטי של הטוקנים.

מחלקות טוקן

כל טוקן הוא אובייקט מסוג: StartTagToken ו-EndTagToken לתגיות (עם תכונות), CharacterToken לטקסט, CommentToken, DoctypeToken, ו-EofToken מסמנים את סוף הקלט.

מצבי Tokenizer

TokenizerState מדמה את מכונת המצבים של הסטנדרטים — אותם מצבים שמפרטת המפרט — ו-Tokenizer.set_state() מאפשר למקראי קטעים וקריאות רגישות להקשר להתחיל במצב הנכון.

הפניות תו

הפניות תו ממוספרות ושמות נפתרות דרך resolve_named_char_ref(), resolve_numeric_char_ref() ו-find_named_char_ref_match() — טבלת ההפניות המלאה, ולא תת-קבוצה מקוצרת.


טיפים ושיטות מומלצות

  • השתמש ב-tokenize_fragment() עם מצב ראשוני נכון בעת טוקניזציה של תוכן שהייתי מופיע בתוך אלמנט ספציפי
  • התייחס ל-EofToken כסימן סיום סופי במקום למלא את האיטרטור באמצעות יוצא מן הכלל
  • למתקנים, בדוק את המאפיינים של StartTagToken ברמת הטוקן לפני שמבנים כל עץ

בעיות נפוצות

בעיהסיבהתיקון
תוכן של script/style מתמטז כסימוןמצב התחלתי שגוי עבור ההקשרהגדר את ה-TokenizerState המתאים דרך set_state()
יישויות מופיעות לא פתורותצריכת טקסט גולמי ללא פתרון הפניותהשתמש בפונקציות הפותרות של char-ref
פלט הקטע שונה מפענוח מלאכללי הקטע שונים בכוונההשתמש ב-tokenize() למסמכים מלאים

FAQ

האם אני יכול להשתמש ב-tokenizer בלי לבנות עץ?

כן — ה-token stream הוא פלט ציבורי ונפרד.

האם מצבי ה-tokenizer הם הסטנדרטיים?

TokenizerState משקף את מכונת המצבים של המפרט וניתן להגדירו דרך set_state().

איך מטופלות named character references?

דרך resolve_named_char_ref() ו-find_named_char_ref_match() כנגד טבלת named-reference המלאה.


API Reference סיכום

מחלקה/מתודהתיאור
Tokenizer.tokenizeTokenize קלט מלא
Tokenizer.tokenize_fragmentTokenize עם כללי קטע
Tokenizer.set_stateהגדר את מצב המפרק הראשוני
StartTagTokenאסימון תג פתיחה עם מאפיינים
TokenizerStateמצבי מכונת מצבים בתקן
resolve_named_char_refפתור הפנייה בשם תו

ראה גם

 עברית