Πώς να χρησιμοποιήσετε το 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 μοντελοποιεί τη μηχανή καταστάσεων της προδιαγραφής.