Я использую модуль 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
, где точка разрыва отличается. Такое поведение крайне раздражает. И я старался изо всех сил, чтобы изолировать проблему. Похоже, что это зависит от всего файла (то есть, если я удаляю оставшуюся часть файла, чтобы остался только этот элемент, то это нормально). Однако я не могу определить, какая часть остальной части файла вызвала это. Хотите знать, если кто-нибудь имел подобный опыт и знает, как обойти эту проблему? Thx !!
ОБНОВЛЕНИЕ: возникновение этого ошибочного поведения также НЕ зависит от отдельного раздела HTML-кода в другом месте файла. Мне удалось выделить два раздела HTML-кодов до этого текстового элемента - когда оба они присутствуют, эта ошибка возникает. Но когда один из них присутствует без другого, эта проблема исчезает ... Я совершенно сбит с толку и раздражен.