[Moscow.pm] Mojo::DOM - each & replace
Nick Knutov
mail на knutov.com
Пт Дек 27 10:05:01 PST 2013
Спасибо. Оказалось, что надо спать чаще и не забывать потом возвращать
данные из функции.
27.12.2013 11:25, Андрей Фёдоров пишет:
> У меня этот код из
>
> <div>
> <img class="image-left" alt="some">
> <img class="image-left">
> </div>
>
> формирует
> <div>
> <figure class="image-left"><img alt="some" class="image-left"
> /><figcaption>some</figcaption></figure>
> <figure class="image-left"><img class="image-left" /></figure>
> </div>
>
>
> 27 декабря 2013 г., 2:54 пользователь Nick Knutov <mail на knutov.com
> <mailto:mail на knutov.com>> написал:
>
> Очень редко использую Mojo::DOM и не могу понять как сделать ->each так,
> чтобы заменить найденное чем-то, сгенерированным на основе найденного.
>
> Пример:
>
> $dom->find('img.image-left')->each(sub {
> my $img = shift;
> my $alt = $img->attr('alt') | '';
> my $r = '<figure class="image-left">'
> . $img
> . (length($alt)>1?
> '<figcaption>'.$img->attr('alt').'</figcaption>' : '')
> . '</figure>';
> $img->replace($r);
> return $img->root;
> });
>
> Внутри $img->root я получаю именно тот, который надо. Но снаружи ничего
> не меняется. Где я не прав?
>
> Подходящие слова к гуглу на тему "mojo dom each replace" подобрать не
> удалось. Нагуглить альтернативы Mojo::DOM - тоже. Есть pQuery и куча
> разных ::DOM, но нигде не вижу функционала для найти и заменить на
> производное от найденного (а во многих модулях и замены нет).
>
> --
> Best Regards,
> Nick Knutov
> http://knutov.com
> ICQ: 272873706
> Voice: +7-904-84-23-130
> --
> Moscow.pm mailing list
> moscow-pm на pm.org <mailto:moscow-pm на pm.org> | http://moscow.pm.org
>
>
>
>
--
Best Regards,
Nick Knutov
http://knutov.com
ICQ: 272873706
Voice: +7-904-84-23-130
Подробная информация о списке рассылки Moscow-pm