Hogyan használjuk a HTML tokenizert a Python-ben
A Aspose.HTML FOSS Python számára készült tokenizáló a jelölőnyelvet egy szabványosan definiált tokenek áramlataivá alakítja — hasznos a linterekhez, a szanitizer előfeldolgozásokhoz, és bármely olyan eszközhöz, amely a jelölőnyelvet a fa szintje alatti szinten vizsgálja. Ez az útmutató lefedi a tokenizálás belépési pontjait, a token szókincset és az állapotokat, a pip használatával a telepítéshez.
Lépésről lépésre útmutató
1. lépés: A csomag telepítése
git clone https://github.com/aspose-html-foss/Aspose.HTML-FOSS-for-Python.git
cd Aspose.HTML-FOSS-for-Python
pip install -e .2. lépés: A szükséges osztályok importálása
from aspose_html.tokenizer import Tokenizer, TokenizerState3. lépés: A jelölőnyelv tokenizálása
Tokenizer.tokenize() feldolgozza a teljes bemenetet; Tokenizer.tokenize_fragment() alkalmazza a fragmentum szabályokat. A folyam tartalmazza a típusú tokeneket: StartTagToken és EndTagToken (attribútumokkal), CharacterToken szöveghez, CommentToken, DoctypeToken, és egy végső EofToken.
4. lépés: Kiinduló állapot vezérlése
TokenizerState tükrözi a specifikáció állapotgépét. Kontextusérzékeny bemenet esetén – tartalom, amely a <script> vagy a <style> belsejében jelenne meg – állítsa be a megfelelő kiinduló állapotot a Tokenizer.set_state() segítségével a tokenizálás előtt.
5. lépés: Karakterreferenciák feloldása
A névvel és számértékkel megadott karakterreferenciák a resolve_named_char_ref(), resolve_numeric_char_ref() és find_named_char_ref_match() segítségével oldódnak fel – a teljes névreferencia táblázatra támaszkodva.
Gyakori problémák és megoldások
A script vagy style tartalom tokenizálódik jelölőnyelvként. A kezdeti állapot helytelen volt a kontextushoz; állítsd be ezzel set_state().
Az entitások feloldatlanul jelennek meg a kimenetben. A nyers szöveg fogyasztóinak futtatniuk kell a karakterreferencia feloldókat; a feloldás ezen a szinten explicite van.
A fragmentum kimenet eltér a teljes elemzéstől. A fragmentum tokenizálási szabályok szándékosan eltérnek — használj tokenize() teljes dokumentumokhoz.
Gyakran feltett kérdések
Fogyaszthatok tokeneket anélkül, hogy fát építenék?
Igen — a tokenáram egy nyilvános kimenet, független a faépítéstől.
Milyen token típusok léteznek?
StartTagToken, EndTagToken, CharacterToken, CommentToken, DoctypeToken és EofToken.
A tokenizáló állapotai a szabványosak?
Igen — TokenizerState modellezi a specifikáció állapotgépét.