|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
28.08.2012, 10:07 | #1 |
Участник клуба
Регистрация: 30.07.2009
Сообщений: 1,601
|
Принцип работы браузеров
Сразу скажу, что меня не интересует каким образом браузер получает информацию, что он хранит ее в кэше и то, что можно найти, скопировав, название этой темы в поисковик. По большей степени меня интересует программная сторона. В голову пришла идея осуществить легкий браузер, но столкнулся с некоторыми трудностями. Свободное общение выбрал потому, что в этой нет особой привязанности к языку.
Один из главных вопросов это парсер, пока еще, html кода. Предположим приложение получило страницу. В оперативной памяти находится весь исходный код без HTTP запроса. Начинаем парсить. Для примера возьмем такую страничку. Вообще это можно проделать и в уме, но все же так будет нагляднее. Код HTML:
<html> <head> </head> <body bgcolor="#FF0000"> <font size="+1"> Текст </font> </body> </html> Вот как лучше организовать этот алгоритм? Заранее благодарю. Последний раз редактировалось _PROGRAMM_; 28.08.2012 в 11:53. |
28.08.2012, 10:17 | #2 |
Участник клуба
Регистрация: 06.04.2009
Сообщений: 1,524
|
Я думаю, перед парсингом, нужно ознакомится со стандартом
|
28.08.2012, 10:48 | #3 |
Старожил
Регистрация: 28.01.2009
Сообщений: 21,000
|
строиться дерево документа, но нужно помнить что html довольно хитрый, он не так строг как xml.
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел. Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите. |
28.08.2012, 10:58 | #4 |
Раздолбайских Дел
Старожил
Регистрация: 22.05.2009
Сообщений: 3,828
|
А парситься будет исключительно html3.2? Или остальные 8 основных стандартов тоже будут поддерживаться?
В вашей верстке, кстати 3 ошибки... CSS парсится для каждого тега в отдельности, причем сохраняет всю изменяемую цепочку с событиями на момент парсинга и применяет при наступлении событий.
Alar, верни репу!
|
28.08.2012, 11:02 | #5 | |
Старожил
Регистрация: 28.01.2009
Сообщений: 21,000
|
Цитата:
есть custom tags, есть собственные аттрибуты и тп. + все это должно быть изменяемо. Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел. Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите. |
|
28.08.2012, 14:42 | #6 | |||||
Участник клуба
Регистрация: 30.07.2009
Сообщений: 1,601
|
Цитата:
Цитата:
Цитата:
Цитата:
Цитата:
Хорошо. Давайте попробуем создать дерево. Из всех инструментов у нас будет только линейная память компьютера. Попробуем создать структуру и облегчить задачу. Код:
Код:
Последний раз редактировалось _PROGRAMM_; 28.08.2012 в 14:46. |
|||||
28.08.2012, 14:47 | #7 |
Старожил
Регистрация: 22.05.2007
Сообщений: 9,085
|
Называется это "по научному" DOM. Это так. Ключевого слова для поиска ради.
|
28.08.2012, 15:09 | #8 | |
Участник клуба
Регистрация: 30.07.2009
Сообщений: 1,601
|
Цитата:
Пока есть время хочу спросить. Имеют ли здесь место динамические массивы? Может я не в ту степь иду. Последний раз редактировалось _PROGRAMM_; 28.08.2012 в 15:35. |
|
28.08.2012, 15:53 | #9 | ||
Раздолбайских Дел
Старожил
Регистрация: 22.05.2009
Сообщений: 3,828
|
Цитата:
Цитата:
Тут, думаю, наиболее подходящим методом было бы составление набора команд для каждого тега и применение к нему атрибутов уже по словарю.
Alar, верни репу!
|
||
28.08.2012, 15:54 | #10 |
Заблокирован
Старожил
Регистрация: 20.07.2008
Сообщений: 4,032
|
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
принцип работы SaveDialog | Form_13 | Общие вопросы Delphi | 1 | 20.02.2012 00:24 |
принцип работы ссылки | sbcd | Свободное общение | 0 | 03.06.2011 21:50 |
принцип работы программы | sasha14486 | Общие вопросы C/C++ | 1 | 22.05.2011 12:36 |
Принцип работы WH_KEYBOARD_LL | wwe2012 | Общие вопросы C/C++ | 5 | 01.04.2011 15:46 |
Принцип работы NS-серверов | Ivan_32 | Свободное общение | 1 | 31.10.2010 03:38 |