HTML Tokenizer

HTML Tokenizer

Tokenizer adalah tahap pertama dari parsing HTML: ia mengubah teks markup menjadi aliran token yang didefinisikan standar. Ia bersifat publik API, sehingga alat yang memperhatikan token daripada pohon — linter, pra-pemrosesan sanitizer, penyorot sintaks — dapat mengonsumsi aliran tersebut secara langsung.


Tokenisasi Markup

Tokenizer.tokenize() memproses input lengkap; Tokenizer.tokenize_fragment() menerapkan aturan tokenisasi fragmen. Keduanya menghasilkan kosakata token standar.

Kelas Token

Setiap token adalah objek bertipe: StartTagToken dan EndTagToken untuk tag (dengan atribut), CharacterToken untuk teks, CommentToken, DoctypeToken, dan EofToken menandai akhir input.

Status Tokenizer

TokenizerState memodelkan mesin status standar — status yang sama yang disebutkan dalam spesifikasi — dan Tokenizer.set_state() memungkinkan pemanggil fragmen dan sensitif konteks memulai dalam status yang tepat.

Referensi Karakter

Referensi karakter bernama dan numerik diselesaikan melalui resolve_named_char_ref(), resolve_numeric_char_ref(), dan find_named_char_ref_match() — tabel referensi bernama lengkap, bukan subset pintasan.


Tips dan Praktik Terbaik

  • Gunakan tokenize_fragment() dengan status awal yang benar saat melakukan tokenisasi konten yang akan muncul di dalam elemen tertentu
  • Anggap EofToken sebagai sinyal akhir yang definitif alih-alih menghabiskan iterator dengan pengecualian
  • Untuk penyaring, periksa atribut StartTagToken pada level token sebelum pohon apa pun dibangun

Masalah Umum

MasalahPenyebabPerbaikan
Konten script/style ditokenisasi sebagai markupStatus awal yang salah untuk konteksSetel TokenizerState yang sesuai melalui set_state()
Entitas muncul tidak terpecahkanMengonsumsi teks mentah tanpa resolusi referensiGunakan fungsi resolver char-ref
Output fragmen berbeda dari parsing penuhAturan fragmen sengaja berbedaGunakan tokenize() untuk dokumen lengkap

FAQ

Apakah saya dapat menggunakan tokenizer tanpa membangun pohon?

Ya — aliran token adalah output publik yang berdiri sendiri.

Apakah status tokenizer adalah yang standar?

TokenizerState mencerminkan mesin status spesifikasi dan dapat diatur melalui set_state().

Bagaimana referensi karakter bernama ditangani?

Melalui resolve_named_char_ref() dan find_named_char_ref_match() terhadap tabel referensi bernama lengkap.


API Reference Ringkasan

Kelas/MetodeDeskripsi
Tokenizer.tokenizeTokenisasi input lengkap
Tokenizer.tokenize_fragmentTokenisasi dengan aturan fragmen
Tokenizer.set_stateAtur keadaan tokenizer awal
StartTagTokenToken tag pembuka dengan atribut
TokenizerStateStandar menyatakan status mesin
resolve_named_char_refMenyelesaikan referensi karakter bernama

Lihat Juga

 Bahasa Indonesia