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, TokenizerStateStap 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.