如何将html文档解析为包含每个节点行号的AST

How to parse an html document into an AST that includes line numbers for each node?

本文关键字:节点 AST 包含每 html 文档      更新时间:2023-09-26

我想使用JavaScript将html文档解析为抽象语法树,其中每个节点还包括每个节点的开始和结束行号(希望还有字符位置)。有什么现有的解决方案可以做到这一点吗?我不想自己写。

2016年4月24日编辑:能够在任意位置解析HTML和php标签将更加理想。

https://unifiedjs.github.io/可以为您提供包括HTML在内的几种格式的CST或AST。

我使用了node html解析器。它就像一个符咒!通过"范围"属性轻松访问字符位置

const scripts = parse(code).getElementsByTagName('script')
const pureCode = code.slice(scripts[0].range[0], scripts[0].range[1]);