Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

regexp vs DOM

271
25 апреля 2007 года
MrXaK
721 / / 31.12.2002
есть скрипт, который берёт инфу с другого сайта в формате HTML и вырезает оттуда нужные данные... сейчас вырезка идут с использованием регулярных выражений... недавно прочитал про DOMDocument() и подумал, что будет быстрее - проводить разбор регэкспами или через средства DOM? кто сталкивался с такой проблемой, подскажите..
з.ы. объёмы получаемого документа могут быть очень большими (до 1Мб чистого текста)
239
25 апреля 2007 года
Dolonet
1.7K / / 20.05.2000
Какой язык программирования будет парсить HTML?
271
25 апреля 2007 года
MrXaK
721 / / 31.12.2002
PHP...
239
25 апреля 2007 года
Dolonet
1.7K / / 20.05.2000
На PHP не знаю, но, думаю, все-равно regexp должно быть шустрее.
8
25 апреля 2007 года
mfender
3.5K / / 15.06.2005
IMHO, DOM быстрее будет. Ну, а уж по части удобства - совсем здорово.
239
25 апреля 2007 года
Dolonet
1.7K / / 20.05.2000
Ну, Perl-овский regexp быстрее должен быть, особенно, на больших строках.
253
25 апреля 2007 года
Proger_XP
1.5K / / 07.08.2004
ИМХО, regexp'ы, ибо пока парсер будет строить дерево из метра кода, regexp быстрее отыщет строку
7.9K
25 апреля 2007 года
vasa_c
191 / / 05.04.2007
Имхо, единственный, кто может решить ваш спор, это тов.Эксперимент.
12
26 апреля 2007 года
alekciy
3.0K / / 13.12.2005
Через DOM банально удобнее, через регулярками.
239
26 апреля 2007 года
Dolonet
1.7K / / 20.05.2000
Речь идет о скорости для времени работы скрипта на сервере, если я правильно понял. А с регулярками как раз все просто и вообще в одну строку. В буквальном смысле слова. Ну, если в regexp ориентироваться, конечно.
8
26 апреля 2007 года
mfender
3.5K / / 15.06.2005
Цитата: alekciy
Через DOM банально удобнее, через регулярками.


Двусмысленно... Надо законспектировать и научится подобным образом водить за нос жену, начальство и прочих... :D :D :D

12
26 апреля 2007 года
alekciy
3.0K / / 13.12.2005
Цитата: Dolonet
Речь идет о скорости для времени работы скрипта на сервере, если я правильно понял. А с регулярками как раз все просто и вообще в одну строку.


Ну это смотря что и в каком объеме требуется искать. Без всяких опыто думаю ясно, что в одних задачах DOM будет и более удобнее и быстрее, в других регулярка будет быстрее.

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

239
26 апреля 2007 года
Dolonet
1.7K / / 20.05.2000
alekciy, Не совсем понял про пример. Слово заранее известно?
8
26 апреля 2007 года
mfender
3.5K / / 15.06.2005
Цитата: alekciy
Мне для одной задачи нужно найти некое слово на странице. Причем это слово может быть какое угодно количество раз. При этом я не знаю в какой части страницы располагается это слово. Вот тут DOM очень полезен и регулярками тут врятли что решишь.



Помоему, тут как раз таки лучше регулярными оперировать. Ибо, в DOM'е всё равно будешь шарить по узлам и искать строку с помощью strpos или preg_math.

12
26 апреля 2007 года
alekciy
3.0K / / 13.12.2005
Цитата: mfender
Двусмысленно... Надо законспектировать и научится подобным образом водить за нос жену, начальство и прочих... :D :D :D


Спецом для mfender-а (:D гы гы) разворачиваю ответ.
DOM позволяет абстрагироваться от структуры входных данных. Мы работаем с абстрактной моделью которую к тому же можно еще и сохранять в другие файлы или модифицировать.
А регулярки нередко привязывают нас к определенной структуре данных ибо в регулярке нередко содержиться описание структуры входищих данных. Изменилась структура входных данных (поправили так HTML код страницы) и регулярка может и перестать работать.

Хочу поддчеркнуть, что я не за DOM или регулярки. Я за использование того инструмента, который для текущей задачи оптимален.

12
26 апреля 2007 года
alekciy
3.0K / / 13.12.2005
Цитата: Dolonet
alekciy, Не совсем понял про пример. Слово заранее известно?


Да. Собственно пример возник из практического опыта написания вот этого сервиса http://alekciy.ru/test/ (так и неделанного, благо сейчас в отпуске и видимо таки допишу).

12
26 апреля 2007 года
alekciy
3.0K / / 13.12.2005
Цитата: mfender
Помоему, тут как раз таки лучше регулярными оперировать. Ибо, в DOM'е всё равно будешь шарить по узлам и искать строку с помощью strpos или preg_math.


XPath на что? И потом использование DOM не исключает использование регулярок.

239
26 апреля 2007 года
Dolonet
1.7K / / 20.05.2000
Кстати, такой сервис уже делал. Основной проблемой в этом случае было сделать так, чтобы все GET и POST ссылки и формы тоже через сервер проходили. Такая вот прокся :)
И, кстати, для этих нужд нужно всего 2 regexp. ну максимум три. И все дефекты кода можно учесть.
337
26 апреля 2007 года
shine
719 / / 09.06.2006
По-моему это очередной холивар. Типа Win vs Linux, Microsoft vs opensource и т.д. :)
239
26 апреля 2007 года
Dolonet
1.7K / / 20.05.2000
Присоединяйся ;)
12
26 апреля 2007 года
alekciy
3.0K / / 13.12.2005
Цитата: shine
По-моему это очередной холивар. Типа Win vs Linux, Microsoft vs opensource и т.д. :)



:D мы в привате пришли к такому же выводу. Но я не холиварю. Не пять лет все же ))) Ну поболтали немного... почему бы и нет? :)

92
27 апреля 2007 года
Тень Пса
2.2K / / 19.10.2006
не знаю.... как то мне лично удобнее разбирать regExp'ами..... ну как-то привык )))

PS: а что лучше... таки не скажу - потому что +1 к холивару )))))))))
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог