[Linux-programlama] Re: devasa xml dosyası nefes aldırmıyor.

---------

[Linux-programlama] Re: devasa xml dosyası nefes aldırmıyor.

From: Yuce Tekol <yucetekol_at_gmail.com>
Date: Fri, 15 Feb 2008 18:28:45 +0200
Message-ID: <a0db246a0802150828p212a6326jed9fdc03609fd3a5@mail.gmail.com>

cElementTree'yi ElementTree'nin uzerine kurmaniz gerekli:
http://effbot.org/downloads/#elementtree

Gonderdigim kodu asagidakiyle degistirin:
import cElementTree

filename = "wurfl.xml"
devices = {}
device = ""
for ev, el in cElementTree.iterparse(file(filename)):
    if el.tag == "device":
        device = el.attrib["id"]

    if el.tag == "group" and el.attrib["id"] == "display":
        c = devices[device] = {}
        for se in el.getiterator():
            try:
                c[se.attrib["name"]] = se.attrib["value"]
            except KeyError:
                pass

yada http://pastebin.com/f45aab568

Sonuc 'devices' sozlugunde.

Yuce Tekol
15.02.2008 tarihinde mirat can bayrak <mcbayrak_at_anadolu.edu.tr> yazmış:
> Friday 15 February 2008 14:48:09 tarihinde Yuce Tekol şunları yazmıştı:
>
> > Merhaba,
> >
> > xml.dom.minidom yerine ElementTree [1] (yada Python 2.5'da
> > xml.etree.ElementTree [2]) kullanabilirsiniz.
> >
> > Asagidaki kod group id'si display olan cihazlarin ozelliklerini bir
> > sozlukte topluyor:
> >
> > import cElementTree
> >
> > devices = {}
> > device = ""
> > for ev, el in cElementTree.iterparse(file("wurfl.xml")):
> > if el.tag == "device":
> > device = el.attrib["id"]
> >
> > if el.tag == "group" and el.attrib["id"] == "display":
> > for se in el.getiterator():
> > try:
> > c = devices[device] = {}
> > c[se.attrib["name"]] = c[se.attrib["value"]]
> > except KeyError:
> > pass
> >
> > Kodu su adrese de yapistirdim: http://pastebin.com/f147e311
> > Yukaridaki kod, gonderdiginiz kodu (benim makinemde) 1.3 s civarinda
> > isliyor.
> >
> > [1] http://effbot.org/zone/celementtree.htm
> > [2] http://docs.python.org/lib/module-xml.etree.ElementTree.html
> >
> > Kolay gelsin,
> >
> > Yuce Tekol
> >
> > 15.02.2008 tarihinde mirat can bayrak <mcbayrak_at_anadolu.edu.tr> yazmış:
> > > *Aşağıda bahsi geçen xml dosyasına buradan ulaşabilirsiniz
> > > http://wurfl.sourceforge.net/wurfl.xml
> > >
> > > -------------------------------------------------------------------------
> > >------------------------------ Selam elimde 6mb lik bir xml dosyası var
> > > bunu parse etmeye kalktığımda şekildeki durum ortaya çıkıyor
> > > http://imaj.at/33307 makina kitlenme noktasıına geliyor. aslında benim
> > > ihtiyacım olan bu xml dosyasının içerisindeki
> > >
> > > <device ... > tag i içindeki <group="display"> içerisindeki bilgiler.
> > >
> > > Bu xml dosyasını küçültmenin bir yolu varmıdır? yapısını ını bozmadan
> > > <group="display"> haricindeki group ları atsam bile eminim ki büyük
> > > oranda dosya küçülecek ve benim bilgisayar rahat bir nefes alacak.
> > >
> > > bunu yapan hazır bir script varmıdır? yoksa nasıl bir yöntem
> > > uygulayabilirim?
> > >
> > > --
> > > İlgilenen herkese teşekkürler
> > >
> > > --
> > > Mirat Can Bayrak
> > > horselogy_at_gmail.com
> > > _______________________________________________
> > > Linux-programlama mailing list
> > > Linux-programlama_at_liste.linux.org.tr
> > > http://liste.linux.org.tr/mailman/listinfo/linux-programlama
> >
> > _______________________________________________
> > Linux-programlama mailing list
> > Linux-programlama_at_liste.linux.org.tr
> > http://liste.linux.org.tr/mailman/listinfo/linux-programlama
>
> Yardımlarınız için teşekkür ederim fakat script 1. satırda
> ImportError: No module named cElementTree
> dedi bende verdiğiniz sayfadaki cElementTree yi kurdum
> (indirdim / açtım / python setup.py install dedim) fakat hala aynı hatayı
> alıyorum nedendir?
>
>
>
> --
>
> Mirat Can Bayrak
> horselogy_at_gmail.com
> _______________________________________________
> Linux-programlama mailing list
> Linux-programlama_at_liste.linux.org.tr
> http://liste.linux.org.tr/mailman/listinfo/linux-programlama
>
_______________________________________________
Linux-programlama mailing list
Linux-programlama_at_liste.linux.org.tr
http://liste.linux.org.tr/mailman/listinfo/linux-programlama
Received on Fri 15 Feb 2008 - 17:51:14 EET

---------

Bu arsiv hypermail 2.2.0 tarafindan uretilmistir.