¿Generador / analizador de XML forrado de flujo en Android?
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?
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