Разбор DOM, структурированный обход документов под капотом - PullRequest
2 голосов
/ 04 апреля 2011

Как разработчик, и я уверен, что я здесь далеко не один, мне всегда любопытно понять, что такое " под капотом ".Парсеры DOM - один из топ-листов этого любопытства для меня.Мы все знаем знаменитый пост .Я даже взломал немного "O RLY?" из-за временной необходимости и любопытства.

Однако моя потребность встретить человека за кулисами остается неудовлетворенной,Как анализаторы DOM или структурированные анализаторы документов в этом отношении анализируют документы?Насколько могут понять мои знания промежуточного разработчика веб-приложений, это комбинация рекурсивного анализа строк и логики сохранения состояния, мало чем отличающаяся от моей собственной хакерской попытки.он прячет кролика?

1 Ответ

4 голосов
/ 04 апреля 2011

Существует хорошо разработанная теория синтаксического анализа и неисчислимое количество инструментов для ее поддержки.В общем, вы смотрите на каждого персонажа, по одному, и решаете, когда созданные вами персонажи составляют токен .Затем вы смотрите на серию токенов и решаете, когда последовательность токенов представляет собой грамматическую конструкцию более высокого уровня - в данном случае, HTML-элемент.При распознавании конструкций вы создаете дерево узлов для их представления - в данном случае дерево DOM.

Итак, вы знакомы с неконтекстными грамматиками и компиляторами, такими как yacc, bison иих более современные аналоги?Если вы понимаете это, парсер DOM не должен быть загадкой.

...