salve!
sto cercando di reperire informazioni da Google Weather API attravers java e XPath.
ma ho dei problemi:
mi viene sollevata un'eccezione alla riga che ho commentato.codice:public class CheckWeather { public void takeWeather(String city) throws ParserConfigurationException, MalformedURLException, IOException, SAXException, XPathExpressionException { URL url = new URL("http://www.google.com/ig/api?weather=roma&hl=it"); URLConnection conn = url.openConnection(); InputStream in = conn.getInputStream(); InputSource inputSource = new InputSource(in); inputSource.setEncoding("ISO-8859-1"); DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance(); DocumentBuilder builder = factory.newDocumentBuilder(); Document doc = builder.parse(inputSource); XPath xpath = XPathFactory.newInstance().newXPath(); XPathExpression expr = xpath.compile("//weather/forecast_information/"); // ECCEZIONE Object result = expr.evaluate(doc, XPathConstants.NODESET); NodeList nodes = (NodeList) result; for (int i = 0; i < nodes.getLength(); i++) { System.out.println(nodes.item(i).getNodeValue()); } } }
probabilmente nn ho ben capito io come interrogare la risposta del servizio che ha una forma del genere:
l'inizio dell'errore è questo:codice:<xml_api_reply version="1"> <weather module_id="0" tab_id="0" mobile_row="0" mobile_zipped="1" row="0" section="0> <forecast_information><city data="Rome, Lazio"/><postal_code data="roma"/> <latitude_e6 data=""/> <longitude_e6 data=""/> <forecast_date data="2012-01-28"/> <current_date_time data="1970-01-01 00:00:00 +0000"/> <unit_system data="SI"/></forecast_information> <current_conditions> <condition data="Nuvoloso"/> <temp_f data="45"/> <temp_c data="7"/> <humidity data="Umidità: 81%"/> <icon data="/ig/images/weather/cloudy.gif"/> <wind_condition data="Vento: E a 8 km/h"/> </current_conditions> ..........
solo che nn ho capito come risolverlo.codice:javax.xml.transform.TransformerException: È previsto un passo di posizione dopo il token '/' o '//'.

Rispondi quotando