невозможно проанализировать XML с помощью xmlpullparser Android API YouTube - PullRequest
2 голосов
/ 26 октября 2011

я написал эту функцию для анализа xml с URL https://gdata.youtube.com/feeds/api/users/yrf/uploads

void getvideodetail() throws Exception {
    XmlPullParserFactory factory = XmlPullParserFactory.newInstance();
    factory.setNamespaceAware(true);
    XmlPullParser xpp = factory.newPullParser();
    String url = "https://gdata.youtube.com/feeds/api/users/yrf/uploads";
    URL input = new URL(url);
    xpp.setInput(input.openStream(), null);
    int eventType = xpp.getEventType();
    boolean entry_flag = false;
    boolean group_flag = false;

    while (eventType != XmlPullParser.END_DOCUMENT) {
        if (eventType == XmlPullParser.START_TAG) {
            if (xpp.getName().equals("entry") || entry_flag) {
                entry_flag = true;
                if (xpp.getName().equals("id")) {
                    Log.i("temp", xpp.nextText());
                    try {
                        if (xpp.nextText() != null) {
                            String temp = xpp.nextText();
                        }
                    } catch (Exception e) {
                        e.printStackTrace();
                    }
                }
            }
        } else if (eventType == XmlPullParser.END_TAG) {
            if (xpp.getName().equals("entry")) {
                entry_flag = false;
            }
        }
        eventType = xpp.next();
    }
}

Из этого разбора мне нужно видео идентификатор, который их в теге. Проблема в том, что я могу видеть текст из тега id в LogCat, но не могу получить текст в строке. Я получаю это исключение.

10-26 14:18:18.883: WARN/System.err(329): org.xmlpull.v1.XmlPullParserException: precondition: START_TAG (position:END_TAG </id>@201:1770 in java.io.InputStreamReader@40642130) 
10-26 14:18:18.883: WARN/System.err(329):     at org.kxml2.io.KXmlParser.exception(KXmlParser.java:273)
10-26 14:18:18.913: WARN/System.err(329):     at org.kxml2.io.KXmlParser.nextText(KXmlParser.java:1430)
10-26 14:18:18.913: WARN/System.err(329):     at com.galerywala.Gallerywala2Activity.getvideodetail(Gallerywala2Activity.java:309)
10-26 14:18:18.913: WARN/System.err(329):     at com.galerywala.Gallerywala2Activity.get_tv_data(Gallerywala2Activity.java:257)
10-26 14:18:18.933: WARN/System.err(329):     at com.galerywala.Gallerywala2Activity$4.run(Gallerywala2Activity.java:222)
10-26 14:18:18.933: WARN/System.err(329):     at java.lang.Thread.run(Thread.java:1019)

Кто-нибудь, пожалуйста, предоставьте какое-нибудь решение этой проблемы.

Спасибо

...