Perl Mojo :: DOM修改属性值

时间:2013-07-02 16:45:43

标签: css perl dom css-selectors mojolicious

如果其他属性包含某个字符串,我想修改属性的值。

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;

因此,如果标记“&lt; LINK”在HREF属性中包含单词“google”,则应将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()修改内容,而不是属性),但它只是解释我想要的东西。

谢谢

1 个答案:

答案 0 :(得分:2)

使用attr方法,即

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

它可以将属性设置为指定值。

p / s:The attrs method has been deprecated (and eventually removed) in favor of attr