🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: pl.comp.lang.perl
Article #52051

Re: alternatywa dla XML::Parser ?

#52051
From: Jacek Kalinski
Date: Mon, 22 Nov 2010 18:16
43 lines
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-mail
References: <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