我想编写一个看似简单的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_start
是filter.txt
的一部分,并且它在HTML文件中,那么A是7777,B是0。 / p>
这个结果我想放在一个XML文件中。
答案 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);
}
}