Generatore / parser xml in streaming su Android?
Domanda
Sto imparando il API Android
da un libro, e sembra che non ci sia alcuna menzione di un API allineato al flusso
per gestire raw xml
(leggendo e scrivendo). Il suo suggerimento per l'analisi è il XmlPullParser
, e i suoi esempi sembrano orrendi considerando il tipo di api's
che mi viziano in altre piattaforme ( LINQ to XML
in particolare).
È questa la migliore tecnica disponibile sulla piattaforma Android
?
Ovviamente posso scrivere un wrapper per evitare le cose ripetitive, ma sarei sorpreso se non esistesse già qualcosa del genere.
Inoltre, non menziona nemmeno la creazione di strutture xml
nel codice. Quali sono le mie opzioni per entrambi?
In una nota a margine, eventuali sviluppatori Java
che hanno familiarità con LINQ to XML in .Net
conoscono qualcosa di equivalente in Java?
Soluzione
Poiché probabilmente non vuoi caricare DOM di dimensioni sostanziali nella memoria di Android, i parser pull e SAX sono i modi preferiti per gestire l'XML in Android. Penso che sia utile investire per capire come funziona SAX e scrivere un gestore personalizzato piuttosto che fare affidamento su alcune librerie generiche che potrebbero essere incompatibili o esagerate. Analizzo XML nelle mie app usando SAX continuamente e sono molto soddisfatto della velocità (la maggior parte delle volte)
Altri suggerimenti
Beh, sono abbastanza nuovo su Java, ma ecco cosa ho raccolto finora sull'analisi XML su Android:
L'approccio XmlPullParser è consigliato per Android a causa di vincoli di risorse. Esiste un parser DOM disponibile in Android, che ti consente di utilizzare XPath per navigare in un documento XML. L'uso del DOM significa tuttavia che è necessario caricare l'intero documento in memoria contemporaneamente. Il metodo XmlPullParser è molto più efficiente in termini di memoria utilizzata.
Il metodo XmlPullParser richiede un po 'di tempo per abituarsi dopo essermi sentito a mio agio con LINQ to XML o XPath, ma non è davvero un peccato IMHO (almeno con i documenti che stavo analizzando). Se stai lavorando con piccoli documenti XML puoi sicuramente usare il DOM con XPath.
C'è un articolo decente sui diversi metodi per leggere e scrivere XML con Android qui: http://www.ibm.com/developerworks/opensource/ biblioteca / x-android / index.html
Ho avuto gli stessi problemi con l'analisi di xml o xhtml e ho finito per scrivere un servizio web facendolo per me.
Android Device ->(Request URL) -> Webservice Get and Parse -
-> (Data) -> Android Device
È possibile trasmettere i dati in JSON per utilizzarli sul dispositivo. Il vantaggio è che puoi ridurre al minimo il traffico sulla rete mobile lenta e modificare l'analisi senza rilasciare una nuova app Android.
Forse questo funzionerà anche per te.
Per quanto riguarda