私はHTMLファイルを解析し、いくつかの情報を抽出し、それを統計することを試みています。
しかし、私の問題は、HTML :: TreeBuilderは1つの結果しか返さないということですが、Regexによってキャッチされるすべての結果が必要です。
#!/bin/perl
use strict;
use warnings;
use Data::Dumper;
use HTML::TreeBuilder;
my $tree = HTML::TreeBuilder->new();
$tree->parse_file("tester.html");
print Dumper($tree->look_down(_tag => "table",id => qr{post[0-9]*?})->as_HTML);
$tree->delete;
tester.html:
<table id="post923076">
<tr>
<td>table1_result</td>
</tr>
</table>
<table id="post923076">
<tr>
<td>table2_result</td>
</tr>
</table>
私の結果:
$VAR1 = "<table id="post923076"><tr><td>table1_result</td></tr></table>";
誰かが考え?
ファイルはこのテーブルの多くを含む可能性があるので、私は例えばファイルを短くしました。
回答:
回答№1の11スカラコンテキストでは、の最初の結果 look_down
返されます。
連鎖の結果としてスカラコンテキストで使用している look_down->as_HTML
.
リストコンテキストで呼び出してから使う map
各要素をHTMLに変換します。
print Dumper(map { $_->as_HTML } $tree->look_down(_tag => "table", id => qr{post[0-9]*?}));