Pregunta

Estoy aprendiendo la Android api de un libro, y parece que no hay ninguna mención de una api con líneas de transmisión para tratar con raw xml (leyendo y escribiendo). Su sugerencia para analizar es el XmlPullParser , y sus ejemplos se ven horrendos teniendo en cuenta el tipo de api en otras plataformas ( LINQ to XML especialmente).

¿Es esta la mejor técnica disponible en la plataforma Android ?

Obviamente, puedo escribir un envoltorio para evitar las cosas repetitivas, pero me sorprendería si no existe tal cosa.

Además, ni siquiera menciona la creación de estructuras xml en el código. ¿Cuáles son mis opciones para ambos?

En una nota al margen, ¿algún Java que esté familiarizado con LINQ to XML en .Net sabe algo equivalente en Java?

¿Fue útil?

Solución

Dado que probablemente no desee cargar ningún DOM de tamaño considerable en la memoria de Android, los analizadores pull y SAX son la forma preferida de tratar con XML en Android. Creo que vale la pena invertir en comprender cómo funciona SAX y escribir un controlador personalizado que confiar en algunas bibliotecas genéricas que pueden ser incompatibles o superpuestas. Analizo XML en mis aplicaciones usando SAX todo el tiempo y estoy muy satisfecho con la velocidad (la mayoría de las veces)

Otros consejos

Bueno, soy bastante nuevo en Java, pero esto es lo que he aprendido hasta ahora sobre el análisis XML en Android:

El enfoque XmlPullParser se recomienda para Android debido a limitaciones de recursos. Hay un analizador DOM disponible en Android, que le permitiría usar XPath para navegar en un documento xml. Sin embargo, usar el DOM significa que debe cargar todo el documento en la memoria de una vez. El método XmlPullParser es mucho más eficiente en términos de memoria utilizada.

El método XmlPullParser toma un poco de tiempo de acostumbrarse después de sentirse cómodo con LINQ to XML o XPath, pero realmente no está tan mal en mi humilde opinión (al menos con los documentos que estaba analizando). Si está trabajando con pequeños documentos xml, ciertamente podría usar el DOM con XPath.

Aquí hay un artículo decente sobre los diferentes métodos para leer y escribir XML con Android: http://www.ibm.com/developerworks/opensource/ library / x-android / index.html

Tuve los mismos problemas con el análisis de xml o xhtml y terminé escribiendo un servicio web que lo hacía por mí.

Android Device ->(Request URL) -> Webservice Get and Parse -
-> (Data) -> Android Device

Puede transmitir los datos en JSON para trabajar con ellos en el dispositivo. La ventaja de esto es que puedes minimizar el tráfico en la red móvil lenta y cambiar el análisis sin lanzar una nueva aplicación para Android.

Tal vez esto también funcione para ti.

saludos

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top