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?

È stato utile?

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

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top