如何在 Python 中使用 HTML Tokenizer
在 Aspose.HTML 的 FOSS 中,针对 Python 的标记器将标记语言转换为标准定义的令牌流——这对于代码检查工具、清理器预处理以及任何在树级以下检查标记的工具都很有用。本指南使用 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:对标记进行标记化
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() 解析——由完整的命名引用表提供支持。
常见问题及解决方案
脚本或样式内容被标记化为 markup。 初始状态对上下文不正确;请使用以下方式设置 set_state().
实体在输出中未解析。 原始文本的使用者必须运行字符引用解析器;在此层级解析是显式的。
片段输出与完整解析不同。 片段标记化规则有意不同 — 使用 tokenize() 用于完整文档。
常见问题
我可以在不构建树的情况下消费标记吗?
是的 — 标记流是公开输出,独立于树的构建。
存在哪些标记类型?
StartTagToken、EndTagToken、CharacterToken、CommentToken、DoctypeToken和EofToken。
标记器的状态是标准的吗?
是 — TokenizerState 对规范的状态机进行建模。