以下是我从堆栈溢出网站研究的代码部分,并尝试对我的代码实现相同的代码。但是我没有得到预期的代码。
在代码中,我尝试使用perl模块HTML :: TreeBuilder从我的文件中删除数字的href链接。
这是我的子程序的一部分,我试图删除所有数字的超链接。
sub process_file
{
print "enter";
my ($files)=@_;
print "******$files**********";
use HTML::TreeBuilder;
my $root = HTML::TreeBuilder->new_from_file($files);
foreach my $a ($root->find_by_tag_name('a')) {
if ($a->attr('href') =~ /^\d+/) {
$a->replace_with_content($a->as_text);
#print $a;
}
}
print $root->as_HTML(undef, "\t");
}
代码说明:
1.这个子程序用于删除文件中的超链接。在我的文件中,所有数字都是超链接的。所以我试图删除它。
2.Foreach正在寻找href标签。
3.接下来如果条件我试图匹配文件中的数字。
输入文件摘要:version*.html
答案 0 :(得分:0)
您的代码似乎运行正常。唯一缺少的是您没有将修改后的内容写回文件。 PFB更新的代码:
use strict;
use warnings;
use HTML::TreeBuilder;
print "enter";
my ($files)= "abc.html";
print "******$files**********\n";
my $FileFH;
my $root = HTML::TreeBuilder->new_from_file($files);
foreach my $a ($root->find_by_tag_name('a')) {
if ($a->attr('href') =~ /^\d+/) {
$a->replace_with_content($a->as_text) or die "Cannot replace";
}
}
print $root->as_HTML(undef, "\t");
open($FileFH,'>',$files);
print $FileFH $root->as_HTML(undef, "\t");
print "File Written successfully";