根据Mojo::Dom
文档。该at
函数仅查找第一个匹配的元素。所以它应该只返回 1。我认为find
这就是你所追求的,因为它返回一个匹配的集合
use strict;
use warnings;
use Mojo::DOM;
my $dom = Mojo::DOM->new();
while (<DATA>) {
$dom->append_content($_);
}
#print $dom;
print $dom->find('iframe');
__DATA__
<p>No one's telling the truth anymore, and that makes the numbers suspect.</p>
<p><iframe width="480" height="360" src="http://localhost:8000/embed/static/clips/2012/12/17/28210/test-rush" allowfullscreen="" frameborder="0" scrolling="no"></iframe></p>
<p>Instead of addressing the fact that some text</p>
<p><iframe width="480" height="360" src="http://localhost:8000/embed//static/video/2012/09/07/fnc-ff-20120907-doocytaxes" allowfullscreen="" frameborder="0" scrolling="\"no\""></iframe></p>
<p>The very first example AP cites was already corrected.some text ....Reacting to recent <a href="/blog/2013/04/17/major-errors-undermine-key-argument-for-austeri">research</a> that has questions.</p>
<p><iframe width="480" height="360" src="http://localhost:8000/embed/static/clips/2013/04/29/29939/fnc-an-20130429-hemmermooredebtgdp" allowfullscreen="" frameborder="0" scrolling="no"></iframe></p>
<p> Arriving at such a conclusion requires not only obscuring the importance in pushing global austerity <a href="/static/images/item/gdp-components.jpg">strong measures</a> of too little spending.</p>
打印您的 iframe:
<iframe allowfullscreen="" frameborder="0" height="360" scrolling="no" src="http://localhost:8000/embed/static/clips/2012/12/17/28210/test-rush" width="480"></iframe> <iframe allowfullscreen="" frameborder="0" height="360" scrolling="\"no\"" src="http://localhost:8000/embed//static/video/2012/09/07/fnc-ff-20120907-doocytaxes" width="480"></iframe> <iframe allowfullscreen="" frameborder="0" height="360" scrolling="no" src="http://localhost:8000/embed/static/clips/2013/04/29/29939/fnc-an-20130429-hemmermooredebtgdp" width="480"></iframe>
编辑:
each
您可以使用以下功能迭代每个 iframe Mojo::Collection
:
我的 $collection = $dom->find('iframe');
$collection->each(sub {
my ($e, $count) = @_;
print "$count: $e\n"; # Or do something besides print.
});
您可以添加一个 @ 来像数组一样循环它:
foreach (@$collection) {
print "\n Next Elt.:", $_->{src}, ",\n"; #still access elements of iframe with ->
}