У меня этот код из

<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 <[email protected]> написал:

> Очень редко использую 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
> [email protected] | http://moscow.pm.org
>
-- 
Moscow.pm mailing list
[email protected] | http://moscow.pm.org

Ответить