异常而android的XML解析 [英] Exception while parsing xml in android

查看:170
本文介绍了异常而android的XML解析的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我尝试解析

以下是我的分析code:

Following is my parsing code:

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)

我没有发现任何明显的原因,为什么出现这种情况。

I do not find any obvious reasons as to why this happens.

在解决任何帮助,这是非常AP preciated。

Any help in resolving this is much appreciated.

推荐答案

这很可能是你不尝试解析您认为XML。相反,你似乎解析HTML文档,这是没有很好形成。这是因为某些HTML标签不需要关闭标签和实际运行到像下面的例子其中之一:

It is very likely that you don't try to parse the XML that you think. Instead you seem to parse a HTML document, which is not well formed. This happens because some of the HTML tags don't require closing tags and you actually run into one of them like in the following example:

<head>
     <link rel="stylesheet" type="text/css" href="theme.css">
</head>

所以请确保你真的尝试分析你打算到XML。无论是检查你尝试获得从XML的URL。您提供的链接,其实应该工作,但也许你有你的code错字。

So please make sure that you really try to parse the XML that you intend to. Either check the URL that you try to get the XML from. The link that you provided should actually work but maybe you have a typo in your code.

此外调试code和检查什么是你的InputStream里面。我想里面的东西很不同,你所期望的。

Additionally debug your code and check what's inside your InputStream. I guess inside there's something very different from what you expect.

这篇关于异常而android的XML解析的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆