我使用Perl模块HTML::PullParser
。我注意到它有时会随机分割一个文本元素(据我所知)。HTML :: PullParser随机分割文本元素
举例来说,如果我有一个HTML文件test.html
与
<html>
...
<FONT STYLE="font-family:Times New Roman" SIZE="2">THE QUICK BROWN FOX</FONT>
...
</html>
的内容和我的Perl代码看起来像
my $html = HTML::PullParser->new(file => 'test.html', text => '"T", text');
while (my $token = $html->get_token) {
print "$$token[1]\n";
}
然后有时候我回来
THE QUICK BROWN FOX # correctly parsed
但是其他时间我得到
THE QUICK
BROWN FOX
其中文本元素被解析为两个单独的标记。然而在其他时候,根据html文件的其他内容,我得到
THE QUICK BROWN
FOX
其中突破点是不同的。这种行为是非常烦人的。我尽力孤立了这个问题。看起来像它是依赖于整个文件(即如果我删除文件的其余部分只剩下那个元素,那么它很好)。但是,我无法确定文件的其余部分是什么引起的。想知道是否有人有类似的经历,并知道如何解决这个问题?谢谢!!
更新:此错误行为的发生也不依赖于该文件中其他地方的单个部分的html代码。我能够在该文本元素之前隔离两段html代码 - 当它们都存在时,会发生此错误。但是当任何一个人都没有对方时,这个问题就会消失......我非常困惑和烦恼。
'HTML :: PullParser'是'HTML :: Parser'的一个子类,你的意思是。 –
@恶魔otto权利;) – hobbs
工程像魔术。非常感谢! – Zhang18