1

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

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”在 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() 修改内容,而不是属性),但这只是为了解释我想要的。

谢谢

4

1 回答 1

2

改用该attr方法,即

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

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

p/s:attrs方法已被弃用(并最终被删除),取而代之的是attr.

于 2013-07-02T18:57:44.893 回答