使用Html :: TreeBuilder :: XPath打印表内容

时间:2013-08-06 13:22:23

标签: html perl html-table html-tree

我想从html文件中提取所有表格并按照以下方式打印其内容:\t分隔每个单元格,每行由\n分隔,每个表格用{{1}分隔}。以下是我的脚本,当我将它更改为tr上的findvalues然后整个tr作为一个元素插入,我甚至尝试了其他方法,如findnodes_as_strings($ path),我想将其修改为上述结构。

\n\n

1 个答案:

答案 0 :(得分:4)

您需要单独处理每个表,对于行也是如此:

foreach my $table ( $tree->findnodes('//table') ) {

    foreach my $row ( $table->findnodes('.//tr') ) {

        my @cells = $row->findvalues('.//td');
        print join("\t", @cells), "\n";
    }
    print "\n";
}

当然这只是简单表的解决方案(考虑一下columnpans,th,table inside table等。)