Πώς να χρησιμοποιήσετε το HTML Tokenizer στο Python

Πώς να χρησιμοποιήσετε το HTML Tokenizer στο Python

Ο tokenizer στο Aspose.HTML FOSS για Python μετατρέπει το markup σε μια ροή από tokens που ορίζονται από πρότυπα — χρήσιμο για linters, sanitizer pre-passes, και οποιοδήποτε εργαλείο που εξετάζει το markup κάτω από το επίπεδο του δέντρου. Αυτός ο οδηγός καλύπτει τα σημεία εισόδου του tokenizing, το λεξιλόγιο των tokens και τις καταστάσεις, χρησιμοποιώντας pip για εγκατάσταση.

Οδηγός βήμα προς βήμα

Βήμα 1: Εγκατάσταση του πακέτου

git clone https://github.com/aspose-html-foss/Aspose.HTML-FOSS-for-Python.git
cd Aspose.HTML-FOSS-for-Python
pip install -e .

Βήμα 2: Εισαγωγή των απαιτούμενων κλάσεων

from aspose_html.tokenizer import Tokenizer, TokenizerState

Βήμα 3: Tokenize Markup

Tokenizer.tokenize() επεξεργάζεται πλήρη είσοδο; Tokenizer.tokenize_fragment() εφαρμόζει κανόνες τμημάτων. Η ροή περιέχει τύπους διακριτικών: StartTagToken και EndTagToken (με ιδιότητες), CharacterToken για κείμενο, CommentToken, DoctypeToken, και ένα τελικό EofToken.


Βήμα 4: Έλεγχος της αρχικής κατάστασης

TokenizerState αντανακλά τη μηχανή καταστάσεων της προδιαγραφής. Για ευαίσθητη στο πλαίσιο είσοδο — περιεχόμενο που θα εμφανιζόταν μέσα σε <script> ή <style> — ορίστε την αντιστοιχική αρχική κατάσταση με Tokenizer.set_state() πριν από την τοκενικοποίηση.


Βήμα 5: Επίλυση αναφορών χαρακτήρων

Οι ονομαστικές και αριθμητικές αναφορές χαρακτήρων επιλύονται μέσω του resolve_named_char_ref(), resolve_numeric_char_ref() και find_named_char_ref_match() — υποστηριζόμενες από τον πλήρη πίνακα ονομαστικών αναφορών.

Κοινά προβλήματα και διορθώσεις

Το περιεχόμενο Script ή style τοκενίζεται ως markup. Η αρχική κατάσταση ήταν λανθασμένη για το πλαίσιο· ορίστε την με set_state().

Οι οντότητες εμφανίζονται αλύτες στην έξοδο. Οι καταναλωτές ακατέργαστου κειμένου πρέπει να εκτελούν τους επιλυτές αναφορών χαρακτήρων· η επίλυση είναι ρητή σε αυτό το επίπεδο.

Η έξοδος του θραύσματος διαφέρει από μια πλήρη ανάλυση. Οι κανόνες τοκενισμού θραύσματος διαφέρουν σκόπιμα — χρησιμοποιήστε tokenize() για πλήρη έγγραφα.

Συχνές Ερωτήσεις

Μπορώ να καταναλώσω tokens χωρίς να δημιουργήσω δέντρο;

Ναι — η ροή tokens είναι δημόσια έξοδος, ανεξάρτητη από τη δημιουργία δέντρου.

Ποιοι τύποι tokens υπάρχουν;

StartTagToken, EndTagToken, CharacterToken, CommentToken, DoctypeToken, και EofToken.

Οι καταστάσεις του tokenizer είναι οι τυπικές;

Ναι — TokenizerState μοντελοποιεί τη μηχανή καταστάσεων της προδιαγραφής.

Δείτε επίσης

 Ελληνικά