Buscar
Social
Ofertas laborales ES

Foro sobre Java SE > Problema al leer xml

Hola, buenas tardes. Tengo un pequeño problema. Les explico:
Estoy haciendo una aplicación que lee archivos xml consumidos desde internet (en concreto para el API de google maps). El código es algo así:
//la variable url tiene la dirección (por ejemplo, http://maps.google.com/maps/api/geocode/xml?address=Madrid&sensor=false)
InputSource inputXml = new InputSource(url.openStream());
//Creo un NodeList para después buscar en concreto la localización
NodeList nodes = (NodeList) xpath.evaluate("GeocodeResponse/result/geometry/location[1]/*",
inputXml, XPathConstants.NODESET);
Esto funciona bien, el problema es que si intento leer otro nodo distinto, no me deja:
NodeList nodes2 = (NodeList) xpath.evaluate("/GeocodeResponse/result/formatted_address",
inputXml, XPathConstants.NODESET);
Para que funcione, tengo que volver a cargar todo el archivo, es decir, volver a hacer:
inputXml = new InputSource(url.openStream());
¿Cómo podría solucionarlo?
Gracias, un saludo

septiembre 24, 2013 | Unregistered Commenterluis

No te compliques la vida y usa un cliente RESTful construido con Jersey: https://jersey.java.net/

https://jersey.java.net/documentation/latest/client.html

septiembre 24, 2013 | Registered Commenterchoces

Es otra opción,. pero en principio lo quería hacer de la manera mostrada.
Es que no entiendo muy bien por qué me da error.
A ver si alguien más puede echar una mano.
Muchas gracias choces

septiembre 24, 2013 | Unregistered Commenterluis

Ya está solucionado. Cargando el inputXml, como un Document:
Document document = builder.parse(url.openStream());
NodeList nodes = (NodeList) xpath.evaluate("GeocodeResponse/result/formatted_address",
document, XPathConstants.NODESET);
NodeList nodes2 = (NodeList) xpath.evaluate("/GeocodeResponse/result/formatted_address",
inputXml, XPathConstants.NODESET);
Puede cargar los nodos que quiera

septiembre 24, 2013 | Unregistered Commenterluis