如何根据XML输出文件中过滤器文件中配置的要求存储HTML文件的属性?

时间:2012-03-19 19:44:22

标签: perl file-io

我想编写一个看似简单的Perl脚本但不知何故我迷失了它。

我有一个HTML文件和一个filter.txt文件。

HTML文件包含

等内容
<tr><td>DATA_START</td><td align="center">77777</td><td align="center">0</td><td align="center">0</td></tr>.....

我想搜索文件filter.txt的内容。如果有该内容,则获取其属性A和B.在这种情况下,如果DATA_startfilter.txt的一部分,并且它在HTML文件中,那么A是7777,B是0。 / p>

这个结果我想放在一个XML文件中。

1 个答案:

答案 0 :(得分:1)

将filter.txt和slurp HTML文件打开到标量。然后grep html为模式,并使用一个简单的正则表达式来解析该行。

请注意,这只适用于这种HTML结构,而不是坚如磐石的解决方案。使用Marpa可以获得更强大的方法。

use Data::Dumper;
$html =~ s#\s*</tr>\s*#</tr>\n#gis;
$html =~ s#\s*<tr[^>]*>\s*#\n<tr>#gis;
while(<FILTER>){
  my $pattern = $_;
  my @datalines = grep {/$pattern/} $html;
  foreach my $dataline (@datalines){
     my (@data) = $dataline =~ m#<td[^>]*>(.*?)</td>#gis;
     die Dumper(@data,$dataline);
  }
}