Hoe de HTML Tokenizer te gebruiken in Python

Hoe de HTML Tokenizer te gebruiken in Python

De tokenizer in Aspose.HTML FOSS voor Python zet markup om in een stroom van op standaarden gedefinieerde tokens — handig voor linters, pre-passes van sanitizers en elke tool die markup onder het boomniveau inspecteert. Deze gids behandelt de tokeniserings-ingangspunten, token-woordenschat en -toestanden, met pip voor installatie.

Stapsgewijze handleiding

Stap 1: Installeer het pakket

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

Stap 2: Importeer vereiste klassen

from aspose_html.tokenizer import Tokenizer, TokenizerState

Stap 3: Tokeniseer markup

Tokenizer.tokenize() verwerkt volledige invoer; Tokenizer.tokenize_fragment() past fragmentregels toe. De stroom bevat getypte tokens: StartTagToken en EndTagToken (met attributen), CharacterToken voor tekst, CommentToken, DoctypeToken, en een laatste EofToken.


Stap 4: Controleer de initiële status

TokenizerState weerspiegelt de toestandsmachine van de specificatie. Voor contextgevoelige invoer — inhoud die zou verschijnen binnen <script> of <style> — stel de overeenkomstige initiële status in met Tokenizer.set_state() vóór het tokeniseren.


Stap 5: Los tekenverwijzingen op

Naam- en numerieke tekenverwijzingen worden opgelost via resolve_named_char_ref(), resolve_numeric_char_ref() en find_named_char_ref_match() — ondersteund door de volledige tabel met benoemde verwijzingen.

Veelvoorkomende problemen en oplossingen

Script- of style-inhoud wordt getokeniseerd als markup. De initiële toestand was onjuist voor de context; stel deze in met set_state().

Entiteiten verschijnen onopgelost in de output. Raw-tekstconsumenten moeten de character-reference resolvers uitvoeren; resolutie is expliciet op dit niveau.

Fragmentoutput verschilt van een volledige parse. Fragment-tokenisatieregels verschillen opzettelijk — gebruik tokenize() voor volledige documenten.

Veelgestelde vragen

Kan ik tokens consumeren zonder een boom te bouwen?

Ja — de tokenstroom is een openbare output, onafhankelijk van boomconstructie.

Welke token types bestaan er?

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

Zijn de tokenizer-statussen de standaard?

Ja — TokenizerState modelleert de toestandsmachine van de specificatie.

Zie ook

 Nederlands