2013-03-25 27 views
6

İlk kez uzak bir sunucudan gelen bir xml dosyasından verileri ayrıştırmaya gideceğim bir uygulama geliştiriyorum.Android: XML verilerini ayrıştırmak için en iyi ayrıştırıcı

Ancak ayrıştırıcı için hangi ayrıştırıcının verimli veya en uygun olduğunu seçemiyorum.

  1. SAX
  2. XMLPullParsing
  3. verileri ayrıştırmak için en iyi ayrıştırıcısıdır DOM

: Bildiğim ayrıştırma üç tip, esas bulunmadığından? Google'da arama yaptım ve yukarıdaki ayrıştırıcıların her iki tarafını da pozitif ve negatif buldum. Ama hangisinin en verimli olduğunu belirleyemedim.

XML, bir takım etiketlerle ağır veriye sahiptir.

Lütfen bana kılavuzluk yapın ve başvurumda ilk defa kullanıyorum olarak hangi ayrıştırıcıyı kullanmam gerektiğini öneririm.

+0

sax veya xmlpullparsing kullanın. Dosya boyutu makulse – Raghunandan

+1

, dom deneyin. Çekirdeğe sığmazsa sax kullanın. Bize şemanızı gösterin ve bize ne tür şeyler yaptığınızı söyleyin. –

+0

Eğer sax iyi ise o zaman ağır veri için saklamayın ama lütfen bana xmlpullparser hakkında bilgi verin. Sax ve xmlpull arasında en iyisi. –

cevap

9

içine okunan her iki tarafta

http://www.firstobject.com/xml-reader-sax-vs-xml-pull-parser.htm

için eksilerini sevinirken gösterir Tüm XML ayrıştırıcılarda Sax ayrıştırıcı en hızlı olanıdır, böylece hiç şüphesiz bunun için gidebilirsiniz .... Eğer bir XML'den veri okumanız ve yazmanız gerekirse DOM için gidebilirsiniz. SAX ayrıştırıcısını kullanarak, yalnızca XML'deki verileri okuyabileceksiniz. Bu ikisi listenin en üstündeyken XMLPullparser'i düşünmenize gerek yoktur.

+0

Üzgünüz ama SAX ayrıştırıcı numaralı kendi kendine sorunu olan bir sorunu var, bunu çözmek için herhangi bir çözüm var mı? – vuhung3990

18

SAX Ayrıştırma, DOM'dan daha iyi uygulanmaktadır. Aşağıdaki bu ikisi arasındaki farkı görün:

DOM:

  • Düğümler Tree yapısı şeklindedir.
  • Bellek: Daha fazla bellek alır, DOM yalnızca küçük XML belgeleri durumunda tercih edilir.
  • Çalışma zamanında daha yavaş.
  • Nesneler olarak depolanır.
  • Programlı olarak uygulanması kolay.
  • Kolay gezinme ve kullanım.

SAX: Olayların

  • Dizi.
  • Büyük belgeler için tercih edilen belleği kullanmaz.
  • Yukarıda belirtilen noktadan dolayı çalışma zamanında daha hızlıdır.
  • Nesneler oluşturulmalıdır.
  • Nesneleri oluşturmak için kod yazmanız gerekiyor.
  • SAX'te Geriye doğru gezinme, sırayla belgeyi işlediği için mümkün değildir.
+2

+1. Bu mükemmel bir karşılaştırma. SAX'in uygulanmasının daha zor olduğunu, çünkü programcının düğümleri aşması gerektiğini vurgular. Ancak, daha hızlıdır, daha az bellek kullanır ve büyük XML veri kümeleri veya akış XML verileri için çok daha uygundur. –

+0

Tam olarak arkadaş. :) –

1

XMLPullParsing derim, ama son zamanlarda Xerces'un da buna bakmak isteyebileceği harika şeyler duydum. Ancak, hiç Xerces ve XMLPullParser kullanılmadı beni asla başarısız oldu. Bunu kullanan bir renk körü uygulaması oluşturuyoruz ve hangi resmini çektiğinizi size söylemek için binlerce renkli comboyu çekiyor.

güncelleme: Eğer aklın okuma yoksa heres birkaç bağlantı okumak için: p, Ayrıca belki başka cevap SAX parser vs XMLPull parser

İlgili konular