Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
作为一名开发人员,我确信我在这里并不孤单,我总是很想了解什么是“幕后”。对我来说,DOM 解析器是这种好奇心中的佼佼者之一。我们都知道著名的帖子。我什至拼凑了一点“O RLY?” ,出于暂时的需要和好奇。
然而,我满足幕后人员的需求仍未得到满足。DOM 解析器或任何结构化文档解析器如何解析文档?就我的中级 Web 应用程序开发人员的理解而言,它是递归字符串解析和状态保持逻辑的组合,与我自己的骇客尝试不同。
魔法师绝对不能泄露他们的秘密,但说真的,他把兔子藏在哪里了?
有一个完善的解析理论,以及无数的工具来支持它。通常,您一次查看每个字符,然后决定到目前为止您制作的字符何时构成令牌。然后查看标记序列,并确定标记序列何时构成更高级别的语法结构——在本例中为 HTML 元素。当您识别结构时,您构建了一个节点树来表示它们——在本例中为 DOM 树。
那么,您是否熟悉上下文无关语法和编译器编译器(如 yacc、bison 及其更现代的对应物)?如果您了解这些,那么 DOM 解析器就不应该是个谜。