Hur man använder HTML Tokenizer i Python

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, TokenizerState

Steg 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.

Se även

 Svenska