2013-03-25 16 views
6

Sto sviluppando un'applicazione in cui la prima volta analizzerò i dati da un file xml proveniente da un server remoto.Android: miglior parser per analizzare i dati XML

Ma non sono in grado di selezionare quale parser è efficiente o più adatto per l'analisi. Come ci sono principalmente tre tipi di analisi, che so:

  1. SAX
  2. XMLPullParsing
  3. DOM

Quale è il miglior parser per analizzare i dati? Come ho cercato su Google e ho trovato entrambi i lati positivi e negativi dei parser di cui sopra. Ma non ero in grado di determinare quale sia il più efficiente.

L'XML ha dati pesanti con un numero di tag.

Per favore guidami e suggerirmi quale parser dovrei usare mentre sto usando l'analisi nella mia applicazione per la prima volta.

+0

utilizza sax o xmlpullparsing. – Raghunandan

+1

se la dimensione del file è ragionevole, prova dom. se non si adatta al nucleo, usa il sax. mostraci il tuo schema e dicci che tipo di cose che stai facendo con i dati –

+0

significa sax se buono quindi dom per i dati pesanti ma per favore mi parli di xmlpullparser. Il meglio tra sax e xmlpull. –

risposta

9

In tutto il parser Sax del parser XML è il più veloce in modo da poterlo fare senza dubbio .... Se hai bisogno di leggere e scrivere i dati da un XML puoi andare per DOM. Usando il parser SAX sarai in grado di leggere i dati dall'XML. Poiché questi due sono in cima alla lista, non è necessario pensare a XMLPullparser.

+0

scusa ma il parser SAX ha un problema con il tag di chiusura automatica , hai qualche soluzione per risolverlo? – vuhung3990

18

L'analisi SAX è la migliore da implementare rispetto a DOM. Vedere la differenza tra questi due in quanto segue:

DOM:

  • i nodi sono in forma di struttura ad albero.
  • Memoria: Occupa più memoria, DOM è preffered solo nel caso di documenti XML piccoli .
  • Più lento in fase di esecuzione.
  • Archiviati come oggetti.
  • Programmaticamente facile da implementare.
  • Facilità di navigazione e utilizzo.

SAX:

  • sequenza degli eventi.
  • Non utilizza alcuna memoria preferita per documenti di grandi dimensioni.
  • Più veloce in fase di esecuzione, a causa del punto sopra menzionato.
  • Gli oggetti devono essere creati.
  • È necessario scrivere codice per creare oggetti.
  • In SAX La navigazione all'indietro non è possibile in quanto in sequenza elabora il documento.
+2

+1. Questo è un paragone eccellente. Vorrei sottolineare che SAX è più difficile da implementare perché il programmatore deve passare attraverso i nodi. Ma è più veloce, utilizza meno memoria ed è molto più adatto a grandi insiemi di dati XML o dati XML in streaming. –

+0

Esattamente amico. :) –

1

Direi XMLPullParsing, ma ho sentito grandi cose recentemente su Xerces potrebbe voler esaminare anche quello. Tuttavia, mai usato Xerces e XMLPullParser non mi ha mai deluso. Costruiamo un'app per il colore cieco che l'ha usata e tira migliaia di combinazioni di colori per dirti di che colore hai appena fatto una foto.

aggiornamento: Heres un po 'di link per leggere se non la lettura del pensiero: p, mostra cons e vantaggi per entrambe le parti

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

anche un'altra risposta a forse leggere in SAX parser vs XMLPull parser