HTML ページを別の形式に変換する Chrome 拡張機能を作成しています。
document.getElementsByTagName("*")
そのコレクションを繰り返し使用すると、すべてのタグを確認できます。ただし、それはフラットな表現です。翻訳された出力が適切な包含/ネストを維持するように、SAX パーサーのように開始および終了の「イベント」を検出する必要があります。
JavaScriptでこれを行う正しい方法は何ですか? これを手動で行わなければならないのは少し厄介なようです。これを行う他の方法はありますか?
私が何を意味するかを説明するために...
<html>
<body>
<h1>Header</h1>
<div>
<p>some text and a missing closing tag
<p>some more text</p>
</div>
<p>some more dirty HTML
</body>
<html>
次の順序でイベントを取得する必要があります。
html open
body open
h1 open
text
h1 close
div open
p open
text
p close
p open
text
p close
div close
p open
text
p close
body close
html close
反復の一環として、SAX パーサーのようなイベントを追跡するのは自分次第だと感じています。他に利用できるオプションはありますか? そうでない場合は、サンプル コードを教えてもらえますか?
ありがとう!