Perl HTML::Strip白名单
有没有办法给模块一个白名单,让它保留某些标签 现在标记如下Perl HTML::Strip白名单,perl,html-parsing,perl-module,Perl,Html Parsing,Perl Module,有没有办法给模块一个白名单,让它保留某些标签 现在标记如下 <div><b>test</b></div> 然而,我想获得下面列出的白名单输出 <b>test</b> 测试 编辑,一个解决方案 使用 my$hss=HTML::StripScripts::Parser->new( { 上下文=>'Inline', EscapeFiltered=>0, BanAllBut=>[qw(i b u)],则, }, 严格的注释=>
<div><b>test</b></div>
然而,我想获得下面列出的白名单输出
<b>test</b>
测试
编辑,一个解决方案
使用
my$hss=HTML::StripScripts::Parser->new(
{
上下文=>'Inline',
EscapeFiltered=>0,
BanAllBut=>[qw(i b u)],则,
},
严格的注释=>0,
严格的_名称=>0,
);
$hss->filter_html(“测试”);
$cooked=$hss->已过滤的_文档;
$cooked=~s///g;
打印$cooked;//测试
读取Perl包装器和底层XS代码时,没有白名单功能
可以添加,尽管不是100%的琐碎-代码已经检查了标签名,如
,并且只有200LOC
作为另一种方法,来自O'Reilly的RegexBook有一个正则表达式配方,可以剥离HTML标记(包括白名单功能)
如果你不想弄乱正则表达式,试试看——它似乎使用了白名单谢谢。我使用了HTML::StripScripts::解析器解决方案。
test
<b>test</b>
my $hss = HTML::StripScripts::Parser->new(
{
Context => 'Inline',
EscapeFiltered => 0,
BanAllBut => [qw(i b u)],
},
strict_comment => 0,
strict_names => 0,
);
$hss->filter_html("<div><b>test</b></div>");
$cooked = $hss->filtered_document;
$cooked =~ s/<!--filtered-->//g;
print $cooked; // <b>test</b>