วิธีใช้ HTML Tokenizer ใน Python
tokenizer ใน Aspose.HTML FOSS สำหรับ Python แปลง markup เป็นสตรีมของ tokens ที่กำหนดโดยมาตรฐาน — มีประโยชน์สำหรับ linters, sanitizer pre-passes, และเครื่องมือใด ๆ ที่ตรวจสอบ markup ด้านล่างระดับ tree. คู่มือนี้ครอบคลุม entry points ของ tokenizing, token vocabulary, และ states, โดยใช้ 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: นำเข้า Classes ที่จำเป็น
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() ก่อนทำการ tokenizing.
ขั้นตอนที่ 5: แก้ไขอ้างอิงอักขระ
อ้างอิงอักขระแบบชื่อและตัวเลขจะถูกแก้ไขผ่าน resolve_named_char_ref(), resolve_numeric_char_ref(), และ find_named_char_ref_match() — รองรับโดยตาราง named-reference ทั้งหมด.
ปัญหาทั่วไปและวิธีแก้
Script หรือ style content tokenizes as markup. สถานะเริ่มต้นไม่ถูกต้องสำหรับบริบท; ตั้งค่าโดยใช้ set_state().
Entities ปรากฏว่าไม่ถูกแก้ไขใน output. Raw text consumers ต้องรัน character-reference resolvers; resolution เป็นแบบชัดเจนในระดับนี้.
Fragment output แตกต่างจากการ parse ทั้งหมด. กฎการ tokenization ของ Fragment ถูกออกแบบให้แตกต่าง — ใช้ tokenize() สำหรับเอกสารเต็ม.
คำถามที่พบบ่อย
ฉันสามารถใช้ token โดยไม่ต้องสร้าง tree ได้หรือไม่?
ใช่ — token stream เป็นผลลัพธ์สาธารณะ ซึ่งไม่ขึ้นกับการสร้าง tree.
ประเภท token ใดบ้างที่มีอยู่?
StartTagToken, EndTagToken, CharacterToken, CommentToken, DoctypeToken, และ EofToken.
สถานะ tokenizer เป็นแบบมาตรฐานหรือไม่?
ใช่ — TokenizerState จำลองเครื่องจักรสถานะของสเปค.