Mojo::DOM - 如何 return 多个属性
Mojo::DOM - How to return more than one attribute
我是 Mojolicious 的新手,要在带有 class 模块的 p 标签中找到 link 的标题,例如
<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";
}
很粗糙,但很实用。我还不知道(对我来说晚上可能太晚了)是如何 return href 和 link 文本。请把我从痛苦中解救出来。
您只需要 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::UserAgent
and Mojo::DOM
, check out Mojocast episode 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;
我是 Mojolicious 的新手,要在带有 class 模块的 p 标签中找到 link 的标题,例如
<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";
}
很粗糙,但很实用。我还不知道(对我来说晚上可能太晚了)是如何 return href 和 link 文本。请把我从痛苦中解救出来。
您只需要 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::UserAgent
and Mojo::DOM
, check out Mojocast episode 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;