Hogyan használjuk a HTML tokenizert a Python-ben

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

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

Lásd még:

 Magyar