xml ファイルの解析に問題があります。解析中に最後の終了タグに到達しますが、END_DOCUMENT に到達することはありません。それは無限ループのようです!!! ただし、文字列の結果を「<foo>Hello World!</foo>」で変更すると、うまくいきます!!!
public void parseXMLData(String result) throws XmlPullParserException, IOException {
XmlPullParserFactory factory = XmlPullParserFactory.newInstance();
factory.setNamespaceAware(true);
factory.setFeature(XmlPullParser.FEATURE_PROCESS_DOCDECL, true);
XmlPullParser xpp = factory.newPullParser();
xpp.setInput( new StringReader ( result ) );
int eventType = xpp.getEventType();
String prefix = null, name = null, value = null;
while (eventType != XmlPullParser.END_DOCUMENT) {
switch(eventType) {
case XmlPullParser.END_DOCUMENT: Log.i(TAG, "end document");
break;
case XmlPullParser.START_TAG : Log.i(TAG, "start tag"); Log.i(TAG, xpp.getName());
break;
case XmlPullParser.END_TAG : Log.i(TAG,"end tag"); Log.i(TAG, "end "+xpp.getName());
break;
case XmlPullParser.START_DOCUMENT : Log.i(TAG, "start document");
break;
case XmlPullParser.TEXT : Log.i(TAG, "text");
break;
case XmlPullParser.COMMENT:
Log.i(TAG, "COMMENT");
break;
case XmlPullParser.DOCDECL:
Log.i(TAG, "DOCDECL");
break;
case XmlPullParser.IGNORABLE_WHITESPACE:
Log.i(TAG, "IGNORABLE_WHITESPACE");
break;
}
eventType = xpp.next();
Log.i(TAG, "next(): "+eventType);
}
Log.i(TAG, "Saiu do while");
if(eventType == XmlPullParser.END_DOCUMENT) {
Log.i(TAG, "end document");
}
showResults();
//str_forecast = xpp.getText();
Log.i(TAG, "Chamou showResults()");
//return xpp.getText();
}
私の XML リソースはhttp://weather.yahooapis.com/forecastrss?w=455823&u=cです
ありがとう