2013-04-22 64 views
0

我是Perl的新手,我試圖讀取HTML文件的<div class="one">之間的特定內容。我如何使用Perl來提取HTML文件的特定部分

HTML文件:

<div class="one"> 

    <div id="two">Donec eu libero sit amet quam egestas semper. Aenean ultricies mi vitae est. Mauris placerat eleifend leo. 
    </div> 

    <pre>Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. 
    </pre> 

</div> 

Perl代碼:

my $file = "content.html"; 

if (-e $file) { 
    open(IN, $file); 
    while (<IN>) { 
     chomp($line = $_); 

     #print "$line\n"; 
    } 
} 

@contents = <IN>; 

#check to if content in html file is in the right location, 
#if content is in correct location (div class="one") 
#print content in div two and three if exist 

for (my $i = 0 ; $i <= $#contents ; $i++) { 
    if (!$contents[$i] =~ m/^\s*<div/ && $contents[$i] =~ m/class\s*=\s*"one"/) { 
     print "content in wrong location"; 
    } 
    else { 
     if ($contents[$i] =~ m/^\s*<div/) { 
      print "$_"; 
     } 
     else ($contents[$i] =~ m/^\s*<pre/) { 
      print "$_"; 
     } 
    } 
} 
+3

這不是一個「txt」文件,它是一個HTML文件,應該用HTML解析器處理。按照「用正則表達式解析HTML」的道路是瘋狂的。 – DavidO 2013-04-22 17:11:59

+0

使用解析器+1:http://search.cpan.org/dist/HTML-Parser/Parser.pm – SEngstrom 2013-04-22 17:13:46

+0

@DavidO:這是一個恰好包含HTML的文本文件。它有一個MIME類型的'text/html'。 – Borodin 2013-04-22 17:16:02

回答

相關問題