2013-07-19 1 views
1

perl을 사용하여 500MB 파일의 유효성을 검사하고 구문 분석하는 방법에 대한 도움을받을 수 있습니다.perl에서 500MB 이상의 XML 파일의 유효성을 검사하고 구문 분석하는 방법

libxml 모듈을 사용해 보았지만 400MB까지만 유효합니다. 그리고 나는 또한 XML::SAX::ParserFactory으로 시험해 보았는데, 이는 Bus Error (코어 덤프)를 제공하고있다.

답변에 대해 매우 감사드립니다.

+0

코드의 관련 부분을 표시하지 않고 정확히 무엇이 잘못되었는지 알 수있는 방법이 없습니다. 스트리밍 모드에서 파서를 사용하고 있습니까? 이렇게하면 메모리 문제가 완화됩니다. – amon

답변

4

더 현대적인 풀 구문 분석기 인 XML::LibXML::Reader을 사용합니다.

use XML::LibXML::Reader; 

my $reader = XML::LibXML::Reader->new(location => "file.xml") 
      or die "cannot read file.xml\n"; 
while ($reader->read) { 
    processNode($reader); 
} 

sub processNode { 
    ... 
} 
+0

Iam 매우 감사드립니다, 그것은 작동하는 것, 이제는 데이터를 캡처하는 방법, 모든 가능성을 확인해야 :) – user2598274

2

또한이 설계되었습니다 XML::Twig를 사용할 수 있습니다. XML :: LibXML :: Reader보다 느리지 만 더 편리 할 것입니다.

관련 문제