1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
<div class="details">
<span class="details_head">Name:</span>
<span class="details_data">Frank</span>
</div>
<div class="details">
<span class="details_head">Alter:</span>
<span class="details_data">23</span>
</div>
<div class="details">
<span class="details_head">Figur:</span>
<span class="details_data">sportlich</span>
</div>
.....
.....
.....
.....
1 2 3 4 5 6 7 8 9
while ( # solange my $elem = $dom->find('div.details span.details_head') # SPAN mit Klasse details_head unterhalb DIV mit Klasse details gefunden and # und $elem->text eq "Alter:" # dessen Kindelement vom Typ Text und gleich der Zeichenkette "Alter:" ) { my $data = $elem->parent->find('span.details_data')->text; # hole beim Elternelement das SPAN mit der Klasse details_data }
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26
use 5.14.0; use Mojo::DOM; undef $/; my $dom = Mojo::DOM->new(<DATA>); my @details = $dom->find("div.details")->each( sub { if ($_->find(".details_head")->first =~ /Alter:/) { say $_->find(".details_data")->first->text; } }); __DATA__ <div class="details"> <span class="details_head">Name:</span> <span class="details_data">Frank</span> </div> <div class="details"> <span class="details_head">Alter:</span> <span class="details_data">23</span> </div> <div class="details"> <span class="details_head">Figur:</span> <span class="details_data">sportlich</span> </div>
undef $/;