Hur man använder HTML Tokenizer i Python
Tokenizer i Aspose.HTML FOSS för Python konverterar markup till en ström av standarddefinierade tokens — användbart för linters, sanitizer-prepassager och alla verktyg som inspekterar markup under trädnivån. Denna guide täcker tokeniseringsingångspunkterna, tokenordlistan och tillstånden, med pip för installation.
Steg-för-steg-guide
Steg 1: Installera paketet
git clone https://github.com/aspose-html-foss/Aspose.HTML-FOSS-for-Python.git
cd Aspose.HTML-FOSS-for-Python
pip install -e .Steg 2: Importera nödvändiga klasser
from aspose_html.tokenizer import Tokenizer, TokenizerStateSteg 3: Tokenisera markup
Tokenizer.tokenize() bearbetar hela inmatningen; Tokenizer.tokenize_fragment() tillämpar fragmentregler. Strömmen innehåller typade token: StartTagToken och EndTagToken (med attribut), CharacterToken för text, CommentToken, DoctypeToken och en sista EofToken.
Steg 4: Kontrollera det initiala tillståndet
TokenizerState speglar specifikationens tillståndsmaskin. För kontextkänslig inmatning — innehåll som skulle visas inom <script> eller <style> — sätt det matchande initiala tillståndet med Tokenizer.set_state() innan tokenisering.
Steg 5: Lös teckenreferenser
Namngivna och numeriska teckenreferenser löses upp via resolve_named_char_ref(), resolve_numeric_char_ref() och find_named_char_ref_match() — med stöd av den fullständiga tabellen för namngivna referenser.
Vanliga problem och lösningar
Script- eller stilinnehåll tokeniseras som markup. Det initiala tillståndet var fel för kontexten; sätt det med set_state().
Entiteter visas olösta i utdata. Råtextkonsumenter måste köra teckenreferens-upplösare; upplösning är explicit på denna nivå.
Fragmentutdata skiljer sig från en fullständig parsning. Fragmenttokeniseringsregler avsiktligt skiljer sig — använd tokenize() för fullständiga dokument.
Vanliga frågor
Kan jag konsumera token utan att bygga ett träd?
Ja — tokenströmmen är ett offentligt resultat, oberoende av trädkonstruering.
Vilka token-typer finns?
StartTagToken, EndTagToken, CharacterToken, CommentToken, DoctypeToken, och EofToken.
Är tokenizer-tillstånden de standard?
Ja — TokenizerState modellerar specifikationens tillståndsmaskin.