contacto[arroba]digitallearning.es
Pantalla Carga Y Parseo XML App Android

Proyecto tratamiento XML en Android utilizando DOM (II)

Post Series: Tratamiento de XML con SAX y DOM

Continuamos con el proyecto de  tratamiento de ficheros XML en Android usando el modelo DOM, al que denominamos «ParsearXML», completando con esta segunda parte. las clases y ficheros de layout que lo componen.

Puedes descargar el código completo de esta Aplicación al final de este tutorial.

Documentación código fuente

ParsearXML\app\src\main\java\com\academiaandroid\parsearxml\TareaAsincronaListado.java

Esta clase que hereda de la clase AsyncTask,se encargará de cargar en segundo plano toda la información del documento XML en memoria, para posteriormente mostrarla por pantalla:

La clase AsyncTask sobrescribe un método que devolverá un ArrayList de objetos Cliente, para posteriormente visualizarlos en un control ListView:

Se obtiene una colección de nodos Cliente:

Se inicializa un ArrayList que almacenará objetos de tipo Cliente:

ParsearXML\app\src\main\java\com\academiaandroid\parsearxml\ParsearDOM.java

Clase que permite cargar,recorrer y leer el documento XML, para posteriormente tener acceso a la totalidad de la información:

A continuación, se implementa un método que devolverá la referencia al documento XML cargado en memoria:

Se asigna a una variable de tipo DocumentBuilderFactory, una nueva instancia para definir una factoría, que permita a la aplicación producir un árbol de objetos DOM a partir del documento XML procesado:

Se obtiene la instancia del documento DOM del fichero XML:

Se instancia la clase InputSource, para definir un recurso de entrada para la entidad XML:

Por último a la instancia Document se le asigna el contenido del recurso de entrada del documento XML, devolviendo un nuevo objeto Document:

Otro de los método definidos será getValue(), que mostrará el texto de cada nodo hijo (nodos finales):

Por último, se construye u método que devolverá un String con el texto de cada nodo hijo:

Se comprueba que no sea nulo la referencia Node recibida:

Se comprueba si el nodo actual tiene nodos hijos:

Se posiciona en el primer nodo hijo:

Se define un bucle while() que comprueba en cada iteración si existe un próximo nodo hijo:

ParsearXML\app\src\main\res\layout\activity_main.xml

A nivel de layout, tendríamos activity_main.xml, que define la interfaz de usuario para la creación de un documento XML. Este layout estará formado, entre otros, de cuatro controles EditText (recogerá los datos de la ficha del cliente) y tres Button (para los eventos de omitir, eliminar a crear un documento XML):

ParsearXML\app\src\main\res\layout\activity_tareasxml.xml

Comentar finalmente el layout activity_tareasxml.xml, que define el layout de la Activity TareasXML.java, y que implementa:

  • Un control de tipo EditText para filtrar los datos del documento XML
  • Cuatro controles de tipo Button, encargados de cargar, filtrar, refrescar o crear un documento XML
  • Un control ListView, que listará la información del XML.
  • Además se implementa un control Spinner que mostrará los documentos creados en la memoria interna del dispositivo:

ClienteBiblioteca\app\src\main\res\layout\item.xml

Layout que define la vista personalizada de cada uno de los elementos que se mostrarán en el control ListView, y que estará formado por cuatro controles de tipo TextView:

Descarga del Proyecto

Descargar

En la siguiente publicación explicaremos el proyecto y veremos el funcionamiento de la aplicación en un video.