我在做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 ......) 有谁知道怎么做?
提前致谢
答案 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),并避免使用正则表达式来执行此类操作