regex - DOM 解析、结构化文档底层遍历

标签 regex parsing dom string-parsing structured-data

作为一名开发人员,我确信我并不孤单,我总是很好奇了解“幕后”是什么。对我来说,DOM 解析器是这种好奇心的榜首之一。我们都知道famous post 。我什至还拼凑了一些"O RLY?" ,出于暂时的需要和好奇。

然而,我与幕后人物见面的需求仍未得到满足。 DOM 解析器或任何结构化文档解析器如何解析文档?就我的中级 Web 应用程序开发人员的理解而言,它是递归字符串解析和状态保持逻辑的组合,与我自己的黑客尝试不同。

魔术师永远不应该泄露他们的 secret ,但是说真的,他把兔子藏在哪里了?

最佳答案

有一个完善的解析理论,以及无数的工具来支持它。一般来说,您一次查​​看每个字符,然后决定您迄今为止创建的字符何时构成一个 token 。然后,您查看这一系列标记,并决定标记序列何时构成更高级别的语法结构——在本例中为 HTML 元素。当您识别构造时,您会构建一棵节点树来表示它们 - 在本例中为 DOM 树。

那么您熟悉上下文无关语法以及编译器-编译器(例如 yacc、bison 及其更现代的对应版本)吗?如果您理解这些,DOM 解析器就不应该是一个谜。

关于regex - DOM 解析、结构化文档底层遍历,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5532140/

相关文章:

regex - Scala 正则表达式从 url 中提取域

javascript - 在 document.ready 之后删除脚本包含标记是否总是安全的?

javascript - 是用JS替换图片src好,还是用CSS滤镜来操作好?

string - 类似 PHP 的字符串解析

json - 如何使用 `jq`获取 key

parsing - 当输入为 &str 时,如何获取多个顺序 nom 解析器的输出?

javascript - 在 appendChild 之后添加 EventListener

php - 用字符串中的同义词替换单词

正则表达式:匹配除指定之外的所有 2 位数字组合

正则表达式查找 XXX(如果存在)但如果 Y 也存在则查找不到