2013-07-31 17 views
2

我有一個小腳本,我用它來處理來自遠程URL的代碼(代碼是分開的)。對於HTML :: TableExtract的手冊頁關於做一個表中,一個表提取下面的代碼段,即HTML :: TableExtract在表格裏面有一張表

$te = new HTML::TableExtract 
     (
     headers => [qw(Summary Region)], 
     chain => [ 
        { depth => 0, count => 2 }, 
        { headers => [qw(Part Qty Cost)] } 
        ], 
    ); 

我的代碼包含了這一點,即:

use HTML::TableExtract; 
use strict; 
use warnings; 

my $te = new HTML::TableExtract 
     (
     headers => [qw(Incident Date Time Location Description)], 
     chain => [ 
        { depth => 0, count => 2 }, 
        { headers => [qw(Unit DIS ENR ONS LEF ARR BUS REM COM)] } 
        ], 
    ); 

$te->parse_file('data.html'); 

然而,運行它給了我這個:

Can't locate object method "chain" via package "HTML::TableExtract" at /usr/lib/perl5/HTML/Parser.pm line 80. 

有什麼我失蹤了嗎? (如果任何人有更好的方法來從表中(在打印過程中的信息來自我所有的耳朵提取表)

回答

1

我沒有看到任何文件中的HTML::TableExtractthe docchain方法。也許你使用過期版本

但根據文檔,你可以這樣做使用depthcount屬性:

$te = HTML::TableExtract->new( 
           headers => [qw(Unit DIS ENR ONS LEF ARR BUS REM COM)], 
           depth => 1, 
           count => 1 
          ); 
$te->parse($html_string); 

深度:指定如何嵌入到其他表的intere的表st 應該是。 HTML文檔中的頂級表格深度爲0, 頂級表格中的表格深度爲1,依此類推。

計數:每個深度您有興趣之內指定的表, 爲0

在你的情況depthcount開始既要1

+0

你是正確的, –

+0

HTTP:/ /manpages.ubuntu.com/manpages/dapper/man3/HTML::TableExtract.3pm.html是我指的那個,它是舊的和過時的(這是第一個出現在谷歌搜索'鏈' ) –

+0

@NoWay你安裝了哪個版本的這個模塊,過時的還是CPAN上的?這是後者,你可以按照新的文檔,使用'depth'和'count'屬性來找到你感興趣的嵌套表。 – 2013-07-31 04:42:48

相關問題