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
Received on Fri 15 Feb 2008 - 14:10:45 EET