html :: tagparser不工作

时间:2011-05-06 03:59:04

标签: html perl parsing



my $url  = "\'http://".$server.":4080/cgi-bin/gen_graph.pl?view=5&SUBSYS=\'";
my $html = HTML::TagParser->new( $url );
my @list = $html->getElementsByTagName( "pre" );
print $list[0];
foreach my $elem ( @list ) {
        if($elem->innerText =~ /APIs/){
                my $text = $elem->innerText;
                if ( $text eq "" ) {
                } else {
                        @API_list = split(/\s+/, $text);
                        print $API_list[1];
                }
        }
}
return \@API_list;
}


此行

my @list = $html->getElementsByTagName( "pre" );
无效。如果我这样做是一个单独的脚本它运作良好..但如果我将它包含在另一个脚本中,@ list中没有任何值。任何人都可以帮助我吗?

1 个答案:

答案 0 :(得分:3)

您收到错误消息了吗?如果是这样,它是什么?

您是否考虑过检查HTML::TagParser->new()的返回值?如果它失败了,它可能会默默地执行此操作,并且只有在您尝试使用$html对象时才会发现。

我认为您递交给它的网址看起来很奇怪。

"\'http://".$server.":4080/cgi-bin/gen_graph.pl?view=5&SUBSYS=\'"

为什么两层报价? (双引号,然后转义单引号)。这不会起作用:

my $url =      'http://' 
          .    $server 
          .    ':4080/cgi-bin-gen_graph.pl?view=5&SUBSYS=';

(添加了额外的空格,以便更容易阅读连接运算符。)