SAXに関して比較的一般的な質問があります。私はそれがどのように機能するかを理解しており、私が読んだチュートリアルに基づいて、ブール値であるinNodeのような大量のデータメンバーを持ち、各イベントハンドラーで各ブール値をチェックし、それに応じてパラメーターを処理することによって状態を維持することを学びました。
私には、これは本当に非効率に思えますが、より効率的な方法はありますか、それともSAXの性質だけですか?
ありがとう、クリス
多くの場合、タグを単純にスタックすることで状態を維持できます。
ノードに入るときは、を押します。
ノードを離れると、ポップします。
多くのブール値よりも優れている場合があります。代わりに、スタックを調べて、解析対象のデータを保持するための正しいコンテキストが設定されているかどうかを確認します。
これがSAXの仕組みです。これは、メモリ使用量が少なく、処理が簡単になるように設計されています。コードが複雑になりすぎる場合は、代わりにDOMモデルを使用することをお勧めします。