使用Perl获取值
发布时间:2020-12-15 23:31:08 所属栏目:大数据 来源:网络整理
导读:所以我有一个报告工具,它在 HTML文件中吐出作业调度统计信息,我希望使用Perl来使用这些数据.我不知道如何逐步浏览HTML表格. 我知道如何使用jQuery做到这一点 $.find('tr').each(function(){ variable = $(this).find('td').text}); 但我不知道如何用Perl做同
所以我有一个报告工具,它在
HTML文件中吐出作业调度统计信息,我希望使用Perl来使用这些数据.我不知道如何逐步浏览HTML表格.
我知道如何使用jQuery做到这一点 $.find('<tr>').each(function(){ variable = $(this).find('<td>').text }); 但我不知道如何用Perl做同样的逻辑.我该怎么办?下面是HTML输出的示例.每个表行包括三个相同的统计信息:对象名称,状态和返回代码. <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN"> <HTML> <HEAD> <meta name="GENERATOR" content="UC4 Reporting Tool V8.00A"> <Title></Title> <style type="text/css"> th,td { font-family: arial; font-size: 0.8em; } th { background: rgb(77,148,255); color: white; } td { border: 1px solid rgb(208,213,217); } table { border: 1px solid grey; background: white; } body { background: rgb(208,217); } </style> </HEAD> <BODY> <table> <tr> <th>Object name</th> <th>Status</th> <th>Return code</th> </tr> <tr> <td>JOBS.UNIX.S_SITEVIEW.WF_M_SITEVIEW_CHK_FACILITIES_REGISTRY</td> <td>ENDED_OK - ended normally</td> <td>0</td> </tr> <tr> <td>JOBS.UNIX.ADMIN.INFA_CHK_REP_SERVICE</td> <td>ENDED_OK - ended normally</td> <td>0</td> </tr> <tr> <td>JOBS.UNIX.S_SITEVIEW.WF_M_SITEVIEW_CHK_FACILITIES_REGISTRY</td> <td>ENDED_OK - ended normally</td> <td>0</td> </tr> 解决方法
您可以使用RegExp,但Perl已经为此特定任务构建了模块.查看
HTML::TableContentParser
您可能会这样做: use HTML::TableContentParser; $tcp = HTML::TableContentParser->new; $tables = $tcp->parse($HTML); foreach $table (@$tables) { foreach $row (@{ $tables->{rows} }) { foreach $col (@{ $row->{cols} }) { # each <td> $data = $col->{data}; } } } (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |