Mojo::DOM-如何返回多个属性



我是Mojolicus的新手,在带有类模块的p标签中查找链接的标题,例如

<p class="Module"><a class="story" href="http://intranet/blah" >Link Text is here</a></p>

我使用以下代码:

my $dom = Mojo::DOM->new( $page );
for my $elm ( $dom->find('p.Module > a.story')->each ){
    print $elm->text ."n";
}

相当粗糙,但很实用。我目前还不知道(对我来说可能已经太晚了)如何返回href和链接文本。请让我摆脱痛苦。

您只需要attr方法:

my $dom = Mojo::DOM->new( $page );
for my $elm ( $dom->find('p.Module > a.story')->each ){
    print $elm->text, ' ', $elm->attr('href'), "n";
}

有关Mojo::UserAgentMojo::DOM的快速教程,请查看Mojocast第5集

这里有一种使用mojo::Collection的map:的方法

use v5.10;
use Mojo::DOM;
use Data::Dumper;
my $page =<<'HTML';
<p class="Module"><a class="story" href="http://intranet/blah" >Link Text is here</a></p>
HTML
my $dom = Mojo::DOM->new( $page );
my @links = $dom
    ->find('p.Module > a.story')
    ->map( sub { [ $_->text, $_->attr( 'href' ) ] } );
say Dumper @links;

相关内容

  • 没有找到相关文章

最新更新