![]() |
Модераторы: korob2001, ginnie |
![]() ![]() ![]() |
|
Valder |
|
|||
Новичок Профиль Группа: Участник Сообщений: 5 Регистрация: 19.4.2008 Репутация: нет Всего: нет |
Есть HLML код типа с кучей комбо-боксов подобных этому:
Хочу на с помощью рег. выражений вычленить тело для имени каждого SELECT-a (н-р этот: category) и узнать соответственно значение. Устал биться с оператором поиска ... подскажите должны быть какая конструкция. СПАСИБО. |
|||
|
||||
arto |
|
|||
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1495 Регистрация: 31.10.2004 Репутация: 38 Всего: 40 |
perldoc HTML::Parser
perldoc HTML::TokeParser или выделите <select>...</select>, затем внутренности. но это менее правильно. |
|||
|
||||
tolkien |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 277 Регистрация: 5.4.2008 Репутация: 4 Всего: 4 |
Второй способ намного лучше первого. Он быстрее, меньше жрет ресурсов и работает везде. А это монстр HTML:Paraser нужен только если вы свои браузер пишете и не хотите по каким либо причинам писать собственный Parser.
|
|||
|
||||
Valder |
|
|||
Новичок Профиль Группа: Участник Сообщений: 5 Регистрация: 19.4.2008 Репутация: нет Всего: нет |
подскажите код ... который бы выбрал <select> ... name=ZZZZ .... </select>
Пробовал что-то типа такого:
Выбирает все до конца текста Это сообщение отредактировал(а) Valder - 19.4.2008, 01:29 |
|||
|
||||
tolkien |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 277 Регистрация: 5.4.2008 Репутация: 4 Всего: 4 |
Если тебе нужен атрибут name в теге select делай так
Выбрать сначала тег например так if ($s =~ m/<select ([^>]+)>/) { my $body_select = $1; if ($body_select =~ m/\bname\s*=\s*['"]?([^'"\s]+)/) { $name = $1; } } |
|||
|
||||
Valder |
|
|||
Новичок Профиль Группа: Участник Сообщений: 5 Регистрация: 19.4.2008 Репутация: нет Всего: нет |
Имя ищется вообще одной строкой, без лишних телодвижений ... Нужно выбрать все теги для тела данного SELECT-a.
|
|||
|
||||
amg |
|
|||
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1145 Регистрация: 3.8.2006 Где: Новосибирск Репутация: 38 Всего: 50 |
Valder, самому парсить html не рекомендуется - это сложно, ненадежно и получется громоздкий малопонятный код. По возможности используйте модули, для этого предназначенные, например, те, на которые указал arto. Если же парсите сами, лучше не пытаться воткнуть все в одну регулярку, а действовать примерно так, как предложил tolkien.
|
|||
|
||||
![]() ![]() ![]() |
Правила форума "Perl" | |
|
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, korob2001, sharq. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Perl: Общие вопросы | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |