Я использую SAX-парсер в android для извлечения данных XML из URL-адреса, но я все еще не получаю, где хранится ответ.Ответ от XML-анализатора в android
Код:
String c=city.getText().toString();
String s=state.getText().toString();
StringBuilder URL=new StringBuilder(baseURL);
URL.append(c+","+s);
try{
SAXParserFactory factory=SAXParserFactory.newInstance();
SAXParser parser=factory.newSAXParser();
XMLReader reader=parser.getXMLReader();
HandlingXMLStuff handler=new HandlingXMLStuff();
reader.setContentHandler(handler);
URL url = new
URL("http://api.openweathermap.org/data/2.5/weathermode=xml&q="+c+","+s);
HttpURLConnection connection = (HttpURLConnection)url.openConnection();
reader.parse(new InputSource(connection.getInputStream()));
String information=handler.getInformation();
output.setText(information);
}
catch(Exception e)
{
output.setText(e.toString());
}
Мой вопрос, где хранится ответ и как получить к нему доступ, чтобы получить желаемую информацию из XML?
EDIT: Большое спасибо за помощь, ребята .. теперь я понял логику .. Но я столкнулся с другой проблемой ....
КОД:
String c = city.getText().toString();
String s = state.getText().toString();
try {
SAXParserFactory factory = SAXParserFactory.newInstance();
SAXParser parser = factory.newSAXParser();
XMLReader reader = parser.getXMLReader();
HandlingXMLStuff handler = new HandlingXMLStuff();
reader.setContentHandler(handler);
String query = URLEncoder.encode(
"http://api.openweathermap.org/data/2.5/weather?mode=xml&q="
+ c + "," + s, "utf-8");
URL url = new URL("http://api.openweathermap.org/data/2.5/weather?mode=xml&q="
+ c + "," + s);
HttpURLConnection connection = (HttpURLConnection) url
.openConnection();
reader.parse(new InputSource(connection.getInputStream()));
String information = handler.getInformation();
output.setText(information);
} catch (Exception e) {
output.setText(e.toString());
}
Я не получаю ответа от url, получение ошибки "невозможно разобрать null как int". Любая идея, что происходит? Я поместил тот же URL-адрес в браузер и получил правильный ответ, но не работал здесь.
Редактировать: Исправлено. Некоторые ошибки из моего обработчика функции XD
проверка [это] (http://stackoverflow.com/questions/4413051/parse-xml-retrieve-info-several- layer-of-nodes-deep-java-android? rq = 1) –
Вы изучали HTTP-запрос для Android? Если после этого 1-го не прочитано, чтобы у вас было лучшее понимание HTTPRequest и как получить его ответ –