gpt4 book ai didi

HTML::PullParser 随机拆分文本元素

转载 作者:可可西里 更新时间:2023-11-01 13:16:42 25 4
gpt4 key购买 nike

我正在使用 Perl 模块 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 的子类。 HTML::Parser 有一个 unbroken_text控制它是否尽快吐出文本事件,或者是否缓冲文本直到解析器知道没有更多文本到来的属性。默认是尽快生成文本节点。 $p->unbroken_text(1) 调用应使其成为缓冲 :)

关于HTML::PullParser 随机拆分文本元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7069923/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com