我写了一段Perl代码来解析HTML文件,并列出其标签以及他们的名字:
my $lo_parser = HTML::PullParser->new(
file => $gs_html_doc,
start => 'event, tagname, @attr',
) or die "Error: $!";
$lo_parser->unbroken_text(1);
while (my $iY_token = $lo_parser->get_token)
{
my $ls_event = $iY_token->[0]; # always "start"
my $ls_name = $iY_token->[1];
my @ly_attr = $iY_token->[2];
print "$ls_name:\n";
foreach (0 .. $#ly_attr)
{
print "- $ly_attr[$_]\n";
}
print "\n";
}
它工作正常,但我不知道如何获取不同属性的值。我发现的有关HTML :: PullParser的网站都没有给我答案。
请问有人可以帮忙吗?
非常感谢。
答案 0 :(得分:1)
正如评论中所说,当用“ @attr”声明时,我没有找到使解析器正常工作的解决方案。
但是,通过稍微不同的方法,我终于得到了想要的东西。
my $lo_parser = HTML::PullParser->new(
file => $gs_html_doc,
start => 'event, tagname, attr',
) or die "Error: $!";
$lo_parser->unbroken_text(1);
while (my $iY_token = $lo_parser->get_token)
{
my $ls_event = $iY_token->[0]; # always "start"
my $ls_name = $iY_token->[1];
my $lH_attr = $iY_token->[2];
print "$ls_name:\n";
foreach (keys %{$lH_attr})
{
print "- $_ = $lH_attr->{$_} = \n";
}
print "\n";
}