下面是logcat彈出的錯誤。它無法解析任何xml文檔的開始處的<!DOCTYPE ...>。我嘗試了一個沒有DOCTYPE標記的頁面,它的工作成功。我已經使用setFeature來啓用'FEATURE_PROCESS_DOCDECL',但它不能解決問題。當使用XmlPullParser時,DOCTYPE給出'意外'錯誤
錯誤: org.xmlpull.v1.XmlPullParserException:意外的<! (位置:START_DOCUMENT空@ 1:1 [email protected])
我的代碼摘錄:
網址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();
}
}
}
}
這可能是無關的,但有一個類似的[錯誤報告在這裏](https://code.google.com/p/android/issues/detail?id=182605):重用XmlPullParser引發「意外的令牌」 DOCTYPE聲明。 –