如何使用Perl修改HTML文件:保留列表并删除所有其他标记

时间:2012-06-25 11:35:02

标签: html perl

我需要在html文件中保留几个html标签,但要删除所有其他标签。

脚本的逻辑是:

- if there is <li> or <ul> on the line, do nothing (=write same line to output)
- otherwise if there is html tag, remove it (=just write the content)

有人可以帮助我,这可以解决我非常有限的perl技能。

1 个答案:

答案 0 :(得分:3)

您可以使用HTML::Restrict

执行此操作
#!/usr/bin/env perl

use strict;
use warnings;

use HTML::Restrict;

my $hr = HTML::Restrict->new( rules => { li => [], ul => [] } );

my $html
    = q[<body><b>hello</b> <img src="pic.jpg" alt="me" id="test" /><ul><li>one</li></ul></body>];
my $processed = $hr->process( $html );

print $processed;

结果输出为:

hello <ul><li>one</li></ul>