下面是 logcat 出现的错误。它无法解析任何 xml 文档开头的 <!DOCTYPE...>。我用一个没有 DOCTYPE 标签的页面尝试了我的程序,它成功地工作了。我已经使用 setFeature 来启用“FEATURE_PROCESS_DOCDECL”,但它并没有解决问题。
错误:org.xmlpull.v1.XmlPullParserException: Unexpected <! (位置:START_DOCUMENT null@1:1 在 java.io.InputStreamReader@424355f0 中)
我的代码摘录:
URL url = 新 URL(" http://www.google.co.in/webhp?hl=en&tab=ww ");
XmlPullParserFactory parser = XmlPullParserFactory.newInstance();
parser.setNamespaceAware(true);
parser.setFeature(XmlPullParser.FEATURE_PROCESS_NAMESPACES,true);
parser.setFeature(XmlPullParser.FEATURE_PROCESS_DOCDECL,true);
XmlPullParser xpp = parser.newPullParser();
InputStream ip=url.openConnection().getInputStream();
xpp.setInput(ip, HTTP.UTF_8);
Message msg = mHandler.obtainMessage();
Bundle bundle = new Bundle();
int eventType=xpp.getEventType();
if(eventType==XmlPullParser.START_DOCUMENT){
while(eventType!=XmlPullParser.END_DOCUMENT ){
if(eventType!=XmlPullParser.DOCDECL){
eventType=xpp.nextToken();
}
else if(eventType==XmlPullParser.START_TAG){
if(xpp.getName().equalsIgnoreCase("title")){
bundle.putString("message", xpp.nextText());
msg.setData(bundle);
mHandler.sendMessage(msg);
eventType=xpp.nextToken();
}
}
}
}