[英]Exception while parsing xml in android
我嘗試解析XML 這個源
以下是我的解析代碼:
while (eventType != XmlPullParser.END_DOCUMENT) {
switch (eventType) {
case XmlPullParser.START_TAG:
if (parser.getName().equals("Title")) {
current_tag = tag_title;
deal = new Deals();
}
if (parser.getName().equals("MSRP")) {
current_tag = tag_msrp;
}
if (parser.getName().equals("ConvertedCurrentPrice")) {
current_tag = tag_convertedprice;
}
if (parser.getName().equals("SavingsRate")) {
current_tag = tag_savings;
}
if (parser.getName().equals("SmallPictureURL")) {
current_tag = tag_icon;
}
break;
case XmlPullParser.END_TAG:
if (parser.getName().equals("Item")) {
current_tag = -1;
deals.add(deal);
}
break;
case XmlPullParser.TEXT:
String value = parser.getText();
switch (current_tag) {
case tag_title:
deal.setTitle(value);
break;
case tag_msrp:
deal.setMSRP(value);
break;
case tag_convertedprice:
deal.setconvertedPrice(value);
break;
case tag_savings:
deal.setSavings(value);
break;
case tag_icon:
System.out.println("Icon for the current deal is: "+value);
deal.setIcon(value);
break;
default:
break;
}
current_tag = -1;
break;
}
eventType = parser.next();
}
} catch (XmlPullParserException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
在eventType = parser.next()
行處,出現以下異常:
07-19 10:43:23.262: W/System.err(922): org.xmlpull.v1.XmlPullParserException: expected: /link read: head (position:END_TAG </head>@1:427 in java.io.InputStreamReader@40dee498)
07-19 10:43:23.272: W/Trace(922): Unexpected value from nativeGetEnabledTags: 0
07-19 10:43:23.272: W/Trace(922): Unexpected value from nativeGetEnabledTags: 0
07-19 10:43:23.282: W/System.err(922): at org.kxml2.io.KXmlParser.readEndTag(KXmlParser.java:970)
07-19 10:43:23.282: W/System.err(922): at org.kxml2.io.KXmlParser.next(KXmlParser.java:372)
07-19 10:43:23.282: W/System.err(922): at org.kxml2.io.KXmlParser.next(KXmlParser.java:310)
07-19 10:43:23.282: W/System.err(922): at com.nykkos.dailydeals.Parsers.parseDeals(Parsers.java:91)
07-19 10:43:23.282: W/System.err(922): at com.nykkos.dailydeals.WebServices.downloadDeals(WebServices.java:37)
07-19 10:43:23.282: W/System.err(922): at com.nykkos.dailydeals.DealsActivity.run(DealsActivity.java:59)
我沒有找到任何明顯的原因來說明為什么會發生這種情況。
任何幫助解決此問題的方法,將不勝感激。
您很可能不嘗試解析您認為的XML。 相反,您似乎解析了格式不正確的HTML文檔。 發生這種情況是因為某些HTML標記不需要關閉標記,而您實際上遇到了其中一個,如以下示例所示:
<head>
<link rel="stylesheet" type="text/css" href="theme.css">
</head>
因此,請確保您確實嘗試解析您想要的XML。 檢查您嘗試從中獲取XML的URL。 您提供的鏈接應該可以正常工作,但也許您的代碼中有錯字。
此外,調試代碼並檢查InputStream中的內容。 我想里面有一些與您期望的非常不同的東西。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.