我正在编写一个 Chrome 扩展程序来将 HTML 页面转换为不同的格式。
如果我使用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 解析器的事件取决于我。我还有其他选择吗?如果没有,你能指出我的任何示例代码吗?
谢谢!