HTML トークナイザーの使用方法 Pythonで
Aspose.HTML FOSS for 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() を通じて解決されます — 完全な名前参照テーブルに裏付けられています。
一般的な問題と修正
スクリプトまたはスタイルのコンテンツはマークアップとしてトークン化されます。 コンテキストに対して初期状態が誤っていました; それを次で設定してください set_state().
エンティティが出力で未解決のまま表示されます。 生テキストのコンシューマは文字参照リゾルバを実行する必要があります; このレベルでの解決は明示的です。
フラグメントの出力は完全なパースとは異なります。 フラグメントのトークン化ルールは意図的に異なります — 使用してください tokenize() 完全な文書の場合は。
よくある質問
ツリーを構築せずにトークンを消費できますか?
はい — トークンストリームはパブリックな出力であり、ツリー構築とは独立しています。
どのトークンタイプが存在しますか?
StartTagToken、EndTagToken、CharacterToken、CommentToken、DoctypeToken、および EofToken。
トークナイザの状態は標準的なものですか?
はい — TokenizerState は仕様の状態機械をモデル化します。