¿Se puede hacer ésto en JAVA?

Leirlux

Actualmente, un compañero y yo estamos desarrollando una APP para dispositivos móviles que se centrará en hacer búsqueda de información de un fichero XML. Mi pregunta viene a partir de la siguiente situación:

<root>
	<!-- FAMILIA: Familia A -->
	<familia categoria="A">
		<objeto id="IMPRESORA">
			<lugar>Dormitorio 1</lugar>
			<lugar>Dormitorio 2</lugar>
		</objeto>
	</familia>
</root>

¿Puedo hacer que JAVA busque por el ID o CATEGORIA y que en mi aplicación IMPRIMA LOS LUGARES donde se encuentra? ¿O tengo que cambiar el XML?

zoeshadow

Si se puede

Hay varias maneras, en esta pregunta de StackOverflow las listan.

Básicamente tienes o bien que crearte una expresión XPATH o recorrer todos los elementos hasta que encuentras el elemento con el ID que deseas.

Cómo alternativa puedes usar Jsoup que te permite parsear un XML ( o HTML que al final es un subset de XML ) y localizar elementos usando un API parecido a jQuery.

2 respuestas
Simdrom

Hola #1,
aparte de lo que te ha comentado #2 tambien puedes mirarte JDOM2 que sirve para representar archivos XML en JAVA, y el moverte por el es muy sencillo.

jalamoNNN

En #2 te han dado un link que puede orientarte un poco. Básicamente Java ya incorpora clases predefinidas que te permiten parsear tu documento XML.
Igual existen librerías que te facilitan esta tarea, pero al fin y al cabo siempre vas a tener que recorrerte cierto número de elementos para encontrar lo que buscas.
En la documentación de Java viene muy bien explicado todo sobre las clases que necesitas usar, échale un ojo.

P.D.: hola queridísimo #1 :P

T

Creo recordar que hay algo llamado DocumentBuilder que te deja hacer un parse a archivos XML

Leirlux

¿Alguien puede ayudarme con ésto? Preferiría hacerlo en Android pero no sé ni por donde empezar.
Ahora pienso que es mejor en Android que en JAVA por el hecho de las animaciones del menú que te ofrece hacer Android respecto a JAVA (va a quedar más puritano por así decirlo).

1 respuesta
hit69

#6 Hazlo mejor en Json que es mas ligero. Lo parseas y puedes pintar los datos como quieras, por ejemplo en un ListView.

http://developer.android.com/reference/android/util/JsonReader.html

Querosvan

como te dicen por aquí, si lo haces en JSON tienes la librería GSON, utilizando Retrofit (u otra librería para comunicaciones) si está en una URL, que lo hace un problema muy simple de resolver