perl - 使用 HTML::PullParser 获取属性值
问题描述
我编写了一段 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 的网站都没有给我答案。
请问有人可以帮忙吗?
提前谢谢了。
解决方案
正如评论中所说,当使用“@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";
}
推荐阅读
- python - 将 CS:GO 输出文件同步到 VPS
- reactjs - React Redux - 可以将每个状态都投入到连接我的组件中吗?
- javascript - 如何在 PHP 中按索引属性循环?
- android - Facebook分享照片不起作用元数据问题
- python - 无法计算两个日期之间的工作日?转换 dtype('
我希望计算两个日期之间的工作日(不包括星期日和星期六),一个在数据框列内,另一个是今天的当前日期,但出现错误:
REF8_df['Days_Dif'] = np.busday_count(REF8_df['Session1_Date'], Todays_Date) File "<__array_f
- sql - 解决存储过程中的单例错误
- arrays - 无法在swift 4中将标题(字符串)和图像从数组显示到CollectionView
- c# - 如何使 Unity2D 中的对象平滑交互?
- json - 对 ':' 元素的 json 数据类型运行查询时出现问题
- angular - 如何解决“检查后表达式已更改”。由于@Input 变量更新而发生时?