作为一名开发人员,我确信我在这里并不孤单,我总是很想知道什么是“引擎盖下”。 DOM解析器是我这种好奇心的列表顶部之一。我们都知道famous post。出于暂时的必要性和好奇心,我甚至将"O RLY?"一起砍掉了。
然而,我需要遇到幕后的男人仍然没有得到满足。 DOM解析器或任何结构化文档解析器如何解析文档?就我的中间Web应用程序开发人员的理解而言,它是递归字符串解析和状态保持逻辑的组合,与我自己的hackish尝试不同。
魔术师不应该透露他们的秘密,但严重的是,他在哪里隐藏兔子?
答案 0 :(得分:4)
有一个完善的解析理论,以及无数的工具来支持它。通常,您一次查看每个角色,并确定您到目前为止所制作的角色何时构成令牌。然后你看一系列标记,并决定标记序列何时构成一个更高级别的语法结构 - 在这种情况下,是一个HTML元素。当您识别构造时,您构建了一个节点树来表示它们 - 在本例中是DOM树。
您是否熟悉无上下文语法,以及yacc,bison等编译器编译器及其更现代的语法?如果您了解这些,那么DOM解析器应该不是一个谜。