Я пытаюсь разобрать openweathermap API http://api.openweathermap.org/data/2.5/weather?q=London&mode=xml
. Я использую KXmlParser через XmlPullParserFactory.newPullParser(), но XMLPullParser.getName() всегда возвращает значение null. Это может быть какая-то глупая ошибка, но, похоже, мне может понадобиться ваша помощь, чтобы увидеть это.
Вот код для чтения API через HTTPURLConnection
.
URL url = new URL(urlString);
URLConnection urlConnection = url.openConnection();
HttpURLConnection httpConnection = (HttpURLConnection) urlConnection;
httpConnection.setRequestMethod("GET");
httpConnection.connect();
if(httpConnection.getResponseCode() == HttpURLConnection.HTTP_OK){
inputStream = httpConnection.getInputStream();
}
я использовал
BufferedReader buffer = new BufferedReader(
new InputStreamReader(inputStream));
String s="";
while ((s=buffer.readLine())!=null){
stringBuffer.append(s);
System.out.println(s);
}
чтобы убедиться, что я успешно читаю xml, и оказывается, что код работает правильно. Далее я использую следующий код для анализа xml
XmlPullParserFactory xmlFactoryObject = XmlPullParserFactory.newInstance();
XmlPullParser myparser = xmlFactoryObject.newPullParser();
myparser.setFeature(XmlPullParser.FEATURE_PROCESS_NAMESPACES
, false);
myparser.setInput(inputStream, null);
int event = myparser.getEventType();
while (event != XmlPullParser.END_DOCUMENT){
Log.d("XMLPullParserHandler", "sdfdsf " + myparser.getName());
String name = myparser.getName();
Но я получаю java.lang.NullPointerException в myparser.getName(); также приведенный выше журнал показывает «sdfdsf null».
Что я делаю неправильно?