-1
documentation on CPAN並沒有真正解釋這種行爲,除非我失去了一些東西。我已經把一些快速的測試代碼來說明我的問題:HTML :: TreeBuilder的「父」功能究竟如何工作?
#!/usr/bin/perl
use warnings;
use strict;
use HTML::TreeBuilder;
my $testHtml = "
<body>
<h1>
<p>
<p>HELLO!
</p>
</p>
</h1>
</body>";
my $parsedPage = HTML::TreeBuilder->new;
$parsedPage->parse($testHtml);
$parsedPage->eof();
my @p = $parsedPage->look_down('_tag' => 'p');
foreach (@p) {print $_->parent->tag, " : ", $_->tag, "\t", $_->as_text, "\n";}
運行上面的腳本後,輸出爲:
body : p
body : p HELLO!
看到,因爲所有的標籤被嵌套了一個又一個,我會認爲第一個p
標記的父代將是h1
,並且第二個p
標記的父代將是p
。爲什麼父母功能顯示body
標籤?
嗯,這個示例只是我需要解析的一些HTML的重新創建。我不確定處理無效HTML的最佳方法是什麼...... – s2cuts 2011-01-31 11:52:51