Perl Mojo::DOM, изменяющий значение атрибута

Я хотел бы изменить значение атрибута, если другой атрибут содержит определенную строку.

my $dom = Mojo::DOM->new('<link href="http://google.com/feed/" rel="alternate">');
$dom->at('link[href*="google"]')->replace_content('http://www.yahoo.com/feed/');
print $dom;

Поэтому, если тег «‹LINK» содержит слово «google» в атрибуте HREF, он должен изменить атрибут HREF на yahoo. Но вместо этого вывод:

<link href="http://google.com/feed/" rel="alternate">http://www.yahoo.com/feed/</link>

Но я хочу, чтобы это было:

<link href="http://www.yahoo.com/feed/" rel="alternate">

Я понимаю, что вышеизложенное не предназначено для работы (replace_content() изменяет содержимое, а не атрибут), но это просто объяснение того, что я хочу.

Спасибо


person P.Henderson    schedule 02.07.2013    source источник


Ответы (1)


Вместо этого используйте метод attr, т.е.

$dom->at('link[href*="google"]')->attr(href => 'http://www.yahoo.com/feed/');

он может установить атрибуты на указанное значение.

p/s: Метод attrs устарел (и в конечном итоге удален) в пользу attr.

person doubleDown    schedule 02.07.2013