2010-07-08 47 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