-1

我正在做 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 ......)有人知道怎么做吗?

提前致谢

4

2 回答 2

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

于 2013-04-02T16:09:59.250 回答
1

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

于 2013-04-02T15:49:52.183 回答