XmlPullParser工作不随同InputStream [英] XmlPullParser is not working with InputStream
本文介绍了XmlPullParser工作不随同InputStream的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我使用XmlPullParser的XML解析在我的Android应用程序,但是当我输入设置为InputStream的它不工作,而我设置输入作为读者就开始工作。
XmlPullParserFactory厂= XmlPullParserFactory.newInstance();
factory.setNamespaceAware(真正的);
XmlPullParser XPP = factory.newPullParser();
xpp.setInput(OBJ,NULL); // obj是InputStream的对象
INT EVENTTYPE = xpp.getEventType();
而(EVENTTYPE!= XmlPullParser.END_DOCUMENT){
logger.println(EVENTTYPE ..+ EVENTTYPE);
如果(EVENTTYPE == XmlPullParser.START_DOCUMENT){
//控制转到这里只
}否则,如果(EVENTTYPE == XmlPullParser.START_TAG){
//这个块永远不会执行
}
}否则,如果(EVENTTYPE == XmlPullParser.END_TAG){
//这个块永远不会执行
}否则,如果(EVENTTYPE == XmlPullParser.TEXT){
}
EVENTTYPE = xpp.next();
}
即使我存储从InputStream对象中的数据串并设置该字符串为输入那么这code也能正常工作。
xpp.setInput(新StringReader(STR)); // STR包含InputStream中的数据
解决方案
同样的问题:通过直接的InputStream正常工作在Android 2.3.3,但不能在4.1工作。
您可以使用 xpp.setInput(新的InputStreamReader(OBJ));
I am using XmlPullParser for xml parsing in my android app but when I set input as InputStream it not works while I set input as Reader it starts working
XmlPullParserFactory factory = XmlPullParserFactory.newInstance();
factory.setNamespaceAware(true);
XmlPullParser xpp = factory.newPullParser();
xpp.setInput(obj,null);//obj is the object of InputStream
int eventType = xpp.getEventType();
while (eventType != XmlPullParser.END_DOCUMENT) {
logger.println("eventType.."+eventType);
if(eventType == XmlPullParser.START_DOCUMENT) {
// control goes here only
} else if(eventType == XmlPullParser.START_TAG) {
//This block never executed
}
} else if(eventType == XmlPullParser.END_TAG) {
//This block never executed
} else if(eventType == XmlPullParser.TEXT) {
}
eventType = xpp.next();
}
Even if I store data from InputStream object in a string and set that String as input then this code also works fine.
xpp.setInput(new StringReader(str));//str contains the data from InputStream
解决方案
The same problem: passing InputStream directly works fine on Android 2.3.3 but doesn't work on 4.1.
You can use xpp.setInput(new InputStreamReader(obj));
这篇关于XmlPullParser工作不随同InputStream的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文