Article View: pl.comp.lang.perl
Article #52051Re: alternatywa dla XML::Parser ?
From: Jacek Kalinski
Date: Mon, 22 Nov 2010 18:16
Date: Mon, 22 Nov 2010 18:16
43 lines
2347 bytes
2347 bytes
W artykule <kjzy68lcvg4.fsf@ccfs1.fuw.edu.pl>, Michal Jankowski napisał(a):
> Zależy, co potem z tym robisz... Sprawdź np. XML::LibXML z użyciem
> XML::LibXML::SAX
Już mi się nie podoba.
XML::Parser potrzebował na "wczytanie" pliku niecałych 3 minut i użył
przy tym 1505MB pamięci, a:
XML::LibXML potrzebował na wczytanie pliku ponad 4 minuty i użył ponad
1800MB pamięci, a na dodatek load komputera skoczył podczas wczytywania
do 13 (fakt - zaczął korzystać ze swapa, ale bez przesady).
Czyli rozwiązanie jeszcze gorsze, albo ja go nie umiem wykorzystać.
Sprawdzone przy pomocy:
my $parser = XML::LibXML->new();
my $doc = $parser->parse_file($file);
A wracając do drugiego pytania co ja z tym potrzebuję zrobić:
mam plik, w którym mam strukturę na wzór:
<root>
<elem id="1" attr1="..." attr2="..." attr3="...">
<elem2>...</elem2>
<elem3>...</elem3>
<elemn>...</elemn>
</elem>
<elem id="xxx" attr1="..." attr2="..." attr3="...">
<elem2>...</elem2>
<elem3>
<elem5>...</elem5>
<elem5>...</elem5>
</elem3>
<elemn>...</elemn>
</elem>
</root>
Struktura nie jest uporządkowana.
Teraz potrzebuję znaleźć wszystkie rekordy, które zawierają attr2 i attr3
o konkretnej (stałej) wartości.
Mając taki rekord, potrzebuję odczytać wszystkie elementy (wg konkretnej
nazwy) oraz przetworzyć wszystkie elementy "elem5" (które mogą być
w dowolnej liczbie, tj. 0, 1, lub więcej).
Jacek
Technical Details
Message-ID:
<slrnielcs0.llq.jacek_kal@nntp.dyski.one.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> <kjzy68lcvg4.fsf@ccfs1.fuw.edu.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: Jacek Kalinski <jacek_kal@go2._NOSPAMPLEASE_.pl> Newsgroups: pl.comp.lang.perl Subject: Re: alternatywa dla XML::Parser ? Date: Mon, 22 Nov 2010 18:16:32 +0000 (UTC) Organization: http://onet.pl Lines: 43 Message-ID: <slrnielcs0.llq.jacek_kal@nntp.dyski.one.pl> References: <slrniekrrg.llq.jacek_kal@nntp.dyski.one.pl> <kjzy68lcvg4.fsf@ccfs1.fuw.edu.pl> NNTP-Posting-Host: chello089072052052.chello.pl Mime-Version: 1.0 X-Trace: news.onet.pl 1290449792 4806 89.72.52.52 (22 Nov 2010 18:16:32 GMT) X-Complaints-To: niusy@onet.pl NNTP-Posting-Date: Mon, 22 Nov 2010 18:16:32 +0000 (UTC) X-Post-counter: 4339 User-Agent: slrn/0.9.9p1 (Linux) Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit