2010-07-08 80 views
2

我在这几天一直在寻找很多,但仍然没有找到一个明确的方法来做到这一点......我知道它很容易解析HTML与Perl来检索标签之间的文本,但我需要实际检索的文本标签内,而不是,像这样的:使用Perl解析/提取HTML标记的内部?

<input type="hidden" name="next_webapp_page" value=""/> 

在这里,我想提取整个标签(或可能不包括单词“输入”的标签......我不想。使用正则表达式,我更喜欢使用的解析器,任何建议表示赞赏

回答

4

使用HTML::TokeParser::Simple,寻找input标签和使用方法as_is打印实例:

#!/usr/bin/perl 

use strict; use warnings; 

use HTML::TokeParser::Simple; 

my $parser = HTML::TokeParser::Simple->new(
    string => '<input type="hidden" name="next_webapp_page" value=""/>' 
); 

while (my $tag = $parser->get_tag('input')) { 
    print $tag->as_is, "\n"; 
    for my $attr (qw(type name value)) { 
     printf qq{%s="%s"\n}, $attr, $tag->get_attr($attr); 
    } 
} 

输出:

<input type="hidden" name="next_webapp_page" value=""/>

 
type="hidden" 
name="next_webapp_page" 
value=""

+0

谢谢...我一直在寻找的tokeparser文档结束了,但我想我错过了这个 – Rick 2010-07-08 18:54:52