Perl 모듈 HTML::PullParser
을 사용하고 있습니다. 나는 때때로 텍스트 요소를 (내가 말할 수있는 한) 무작위로 나눠 봤다. 내가HTML :: PullParser가 임의로 텍스트 요소를 나눕니다.
<html>
...
<FONT STYLE="font-family:Times New Roman" SIZE="2">THE QUICK BROWN FOX</FONT>
...
</html>
의 내용과 함께 HTML 파일 test.html
을 그리고 예를 들어
내 펄 코드는 다음
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 :: Parser'는'HTML :: Parser'의 하위 클래스입니다. –
@evil otto right;) – hobbs
마술처럼 작동합니다. 정말 고맙습니다! – Zhang18