Article View: pl.comp.lang.perl
Article #52054Re: alternatywa dla XML::Parser ?
From: MaW
Date: Mon, 22 Nov 2010 17:23
Date: Mon, 22 Nov 2010 17:23
24 lines
1869 bytes
1869 bytes
Użytkownik "Jacek Kalinski" <jacek_kal@go2._NOSPAMPLEASE_.pl> napisał w wiadomości news:slrniekrrg.llq.jacek_kal@nntp.dyski.one.pl... > Od razu zaznaczam, że perla znam w szczątkowej formie (preferuję inne > języki programowania). Mam plik XML o wielkości 400MB ($file). > To już pewnie rozumiecie dlaczego perl ;) > > Dlaczego: > my $parser = XML::Parser->new( ErrorContext => 2, Style => "Tree" ); > $parser->parsefile( $file ); > > wykonanie tylko tych 2 wierszy trwa ponad 3 minuty? Dlatego, że nie czytasz pliku, tylko go parsujesz tzn rozpoznajesz elementy w pliku i budujesz w pamięci odpowiednią strukturę. Byc może wiedząc coś więcej o pliku XML dałoby się cos wymyślić. Może wystarczy XML::Simple z parserem SAX? - nie testowałem, ale warto spróbować: http://search.cpan.org/~grantm/XML-Simple-2.18/lib/XML/Simple.pm#SAX_SUPPORT dodatkowo jeśli odwołujesz się wielokrotnie do tego pliku możesz włączyć cache=>storable MaW
Technical Details
Message-ID:
<ice8v0$oed$1@news.onet.pl>Path:
mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.rmf.pl!agh.edu.pl!news.agh.edu.pl!news.onet.pl!not-for-mailReferences:
<slrniekrrg.llq.jacek_kal@nntp.dyski.one.pl>Show Full Headers
Complete Article Headers
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.rmf.pl!agh.edu.pl!news.agh.edu.pl!news.onet.pl!not-for-mail From: "MaW" <niepisztu@aaa.bbb> Newsgroups: pl.comp.lang.perl Subject: Re: alternatywa dla XML::Parser ? Date: Mon, 22 Nov 2010 18:23:56 +0100 Organization: http://onet.pl Lines: 25 Message-ID: <ice8v0$oed$1@news.onet.pl> References: <slrniekrrg.llq.jacek_kal@nntp.dyski.one.pl> NNTP-Posting-Host: nat4-16.ghnet.pl Mime-Version: 1.0 X-Trace: news.onet.pl 1290446624 25037 91.150.221.16 (22 Nov 2010 17:23:44 GMT) X-Complaints-To: niusy@onet.pl NNTP-Posting-Date: Mon, 22 Nov 2010 17:23:44 +0000 (UTC) X-Priority: 3 X-MSMail-Priority: Normal X-Newsreader: Microsoft Outlook Express 6.00.2900.5931 X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2900.5994 X-EsetScannerBuild: 8219 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit