打印<p> html,perl </p>的内容

时间:2013-04-02 15:46:44

标签: html perl

我在做perl编程。我正在打开.html的输入。我想将<P>标签的内容复制到变量中,以便我只能使用内容并对内容进行一些更改

下面是我的代码

use utf8;
package MyParser;
use base qw(HTML::Parser);

$lines = <INPUT>;
my $parser = MyParser->new;
$parser->parse( $lines );
print $lines;

但它只打印(!DOCTYPE html PUBLIC ......) 有谁知道怎么做?

提前致谢

2 个答案:

答案 0 :(得分:4)

考虑使用HTML::TokeParser::Simple进行HTML文档的简单流解析。

#!/usr/bin/env perl

use strict;
use warnings;

use HTML::TokeParser::Simple;

my $parser = HTML::TokeParser::Simple->new(...);

while (my $tag = $parser->get_tag('p')) {
    print $parser->get_trimmed_text('/p'), "\n";
}

如果您希望查询和更改整个文档树,HTML::TreeBuilder将为您提供HTML::Tree

答案 1 :(得分:1)

我强烈建议使用解析器(HTML::Parser),并避免使用正则表达式来执行此类操作