Come utilizzare il HTML Tokenizer in Python

Come utilizzare il HTML Tokenizer in Python

Il tokenizzatore in Aspose.HTML FOSS per Python converte il markup in un flusso di token definiti dagli standard — utile per linters, pre-pass di sanificazione e qualsiasi strumento che ispeziona il markup al di sotto del livello dell’albero. Questa guida copre i punti di ingresso della tokenizzazione, il vocabolario dei token e gli stati, usando pip per l’installazione.

Guida passo-passo

Passo 1: Installa il pacchetto

git clone https://github.com/aspose-html-foss/Aspose.HTML-FOSS-for-Python.git
cd Aspose.HTML-FOSS-for-Python
pip install -e .

Passo 2: Importa le classi richieste

from aspose_html.tokenizer import Tokenizer, TokenizerState

Passo 3: Tokenizza il markup

Tokenizer.tokenize() elabora l’input completo; Tokenizer.tokenize_fragment() applica le regole dei frammenti. Il flusso contiene token tipizzati: StartTagToken e EndTagToken (con attributi), CharacterToken per il testo, CommentToken, DoctypeToken, e un EofToken finale.


Passo 4: Controllare lo Stato Iniziale

TokenizerState rispecchia la macchina a stati della specifica. Per input sensibili al contesto — contenuto che apparirebbe all’interno di <script> o <style> — impostare lo stato iniziale corrispondente con Tokenizer.set_state() prima della tokenizzazione.


Passo 5: Risolvere i Riferimenti di Carattere

I riferimenti di carattere nominati e numerici si risolvono tramite resolve_named_char_ref(), resolve_numeric_char_ref() e find_named_char_ref_match() — supportati dalla tabella completa dei riferimenti nominati.

Problemi Comuni e Correzioni

Il contenuto di script o style viene tokenizzato come markup. Lo stato iniziale era errato per il contesto; impostalo con set_state().

Le entità appaiono non risolte nell’output. I consumatori di testo grezzo devono eseguire i risolutori di riferimenti di carattere; la risoluzione è esplicita a questo livello.

L’output del frammento differisce da un parsing completo. Le regole di tokenizzazione del frammento differiscono intenzionalmente — usa tokenize() per i documenti completi.

Domande Frequenti

Posso consumare i token senza costruire un albero?

Sì — il flusso di token è un output pubblico, indipendente dalla costruzione dell’albero.

Quali tipi di token esistono?

StartTagToken, EndTagToken, CharacterToken, CommentToken, DoctypeToken e EofToken.

Gli stati del tokenizzatore sono quelli standard?

Sì — TokenizerState modella la macchina a stati della specifica.

Vedi anche

 Italiano