openweathermap api を解析しようとしていますhttp://api.openweathermap.org/data/2.5/weather?q=London&mode=xml
。XmlPullParserFactory.newPullParser() 経由で KXmlParser を使用していますが、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();
しかし、myparser.getName(); で java.lang.NullPointerException を取得しています。また、上記のログには「sdfdsf null」が表示されています。
私は何を間違っていますか?