Perl 如何根据过滤文件中配置的要求将HTML文件的属性存储在XML输出文件中?
我想写一个Perl脚本,它看起来很简单,但不知怎么的,我被它迷住了 我有一个HTML文件和一个Perl 如何根据过滤文件中配置的要求将HTML文件的属性存储在XML输出文件中?,perl,file-io,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>..... DATA
filter.txt
文件
HTML文件的内容如下
<tr><td>DATA_START</td><td align="center">77777</td><td align="center">0</td><td align="center">0</td></tr>.....
DATA\u start77700。。。。。
我想搜索文件filter.txt
的内容。如果存在该内容,则获取其属性A和B。在本例中,如果DATA\u start
是filter.txt
的一部分,并且它在HTML文件中,则A为7777,B为0
我想把这个结果放在一个XML文件中。打开filter.txt并将slurp HTML文件转换为标量。然后grep该模式的html,并使用一个简单的regexp解析该行 注意,这只适用于这种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);
}
}
使用数据::转储程序;
$html=~s#\s*\s*\n#gis;
$html=~s#\s*]>\s*\n#gis;
while(){
我的$pattern=$\;
my@datalines=grep{/$pattern/}$html;
foreach my$dataline(@dataline){
我的(@data)=$dataline=~m#]*>(.*)地理信息系统;
模具转储程序(@data,$dataline);
}
}
将filter.txt和slurp HTML文件打开为标量。然后grep该模式的html,并使用一个简单的regexp解析该行
注意,这只适用于这种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);
}
}
使用数据::转储程序;
$html=~s#\s*\s*\n#gis;
$html=~s#\s*]>\s*\n#gis;
while(){
我的$pattern=$\;
my@datalines=grep{/$pattern/}$html;
foreach my$dataline(@dataline){
我的(@data)=$dataline=~m#]*>(.*)地理信息系统;
模具转储程序(@data,$dataline);
}
}
过滤器文件是什么样子的?XML输出应该是什么样子的?你尝试过什么,遇到过哪些问题,在没有帮助的情况下,你在哪一步陷入困境?没有此信息,问题不完整。筛选文件是什么样子的?XML输出应该是什么样子的?你尝试过什么,遇到过哪些问题,在没有帮助的情况下,你在哪一步陷入困境?没有这些信息,这个问题是不完整的。