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 "$_";
}
}
}
這不是一個「txt」文件,它是一個HTML文件,應該用HTML解析器處理。按照「用正則表達式解析HTML」的道路是瘋狂的。 – DavidO 2013-04-22 17:11:59
使用解析器+1:http://search.cpan.org/dist/HTML-Parser/Parser.pm – SEngstrom 2013-04-22 17:13:46
@DavidO:這是一個恰好包含HTML的文本文件。它有一個MIME類型的'text/html'。 – Borodin 2013-04-22 17:16:02