1

HTMLファイルを解析し、情報を抽出して統計を作成しようとしています。

しかし、私の問題は、HTML::TreeBuilder が 1 つの結果しか返さないことですが、正規表現によってキャッチされるすべての結果が必要です。

#!/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>';

誰かアイデア?

たとえば、ファイルにはこのテーブルの多くが含まれている可能性があるため、ファイルを短縮しました。

4

1 に答える 1

11

スカラー コンテキストでは、 の最初の結果look_downが返されます。

chaining の結果として、スカラー コンテキストで使用していますlook_down->as_HTML

リスト コンテキストで呼び出してmapから、各要素を HTML に変換するために使用します。

print Dumper(map { $_->as_HTML } $tree->look_down(_tag => 'table', id => qr{post[0-9]*?}));
于 2013-10-25T23:48:42.940 に答える