4 Star 16 Fork 1

小李 / wet

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
克隆/下载
parser-improvement-solution.md 933 Bytes
一键复制 编辑 原始数据 按行查看 历史
小李 提交于 2020-09-30 15:26 . Added parser-improvement-solution.md

htmlparser 优化方案

目前的 htmlparser 仍然采用的字符串替换的方式在进行模板兼容, 这种方式效率不高,也缺乏灵活性,使解析与模板硬绑定在了一起。

解决

添加 处理器 支持,以能自由解析 html 结构。

处理器: 其为函数,用于对解析器收到的一个词元进行判断,决定其是否为开始或结束。

处理器包含以下信息:

  • 类型 用于说明当前内容是 element/attribute/text/cdata/comment
  • 标签名 如果类型是 element
  • 前一个字符
  • 当前字符
  • 后一个字符

函数应该返回以下信息:

  • 期望字符 当返回了此项时,在读取到此字符时会再次触发处理器
  • 停止字符 遇到此字符时必须停止读取,即使未遇到期望字符

期望字符和停止字符可以是正则表达式 ? 是否可行?

词元:html 内的符号或词。

NodeJS
1
https://gitee.com/hyjiacan/wet.git
git@gitee.com:hyjiacan/wet.git
hyjiacan
wet
wet
master

搜索帮助