私はPerlモジュールHTML::PullParser
を使用しています。私は時々ランダムにテキスト要素を(私が言うことができる限り)分割することに気づいた。例えばHTML :: PullParserはランダムにテキスト要素を分割します
、私は
<html>
...
<FONT STYLE="font-family:Times New Roman" SIZE="2">THE QUICK BROWN FOX</FONT>
...
</html>
の内容にhtmlファイルtest.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
ここで、text要素は2つの別々のトークンに解析されます。限界点が異なっているところはまだ他の回で、htmlファイルの他の内容に応じて、私は
THE QUICK BROWN
FOX
を取得します。この動作は非常に面倒です。そして、問題を切り分けるために最善を尽くしました。ファイル全体に依存するように見えます(つまり、残りのファイルを削除してその要素のみを残しておけば、それは問題ありません)。しかし、ファイルの残りの部分がこれを引き起こした部分を特定することはできません。誰かが似たような経験を持ち、問題を回避する方法を知っているのだろうか?どうも!!
UPDATE:この誤った動作の発生は、ファイル内の別の場所にあるHTMLコードのセクションにも依存しません。私はそのテキスト要素の前にhtmlコードの2つのセクションを分離することができました - 両方が存在する場合、このエラーが発生します。しかしどちらか一方が存在しなくても、この問題は解消されます...私は絶対に混乱し、悩まされます。
'HTML :: Parser'は' HTML :: Parser'のサブクラスです。 –
@evil otto right;) – hobbs
魔法のように動作します。どうもありがとうございます! – Zhang18