Создайте базовый класс для утилиты xmlpullparser в Android

У меня проблема с синтаксическим анализом XML с помощью API xmlpullparser для Android.

Проблема: у меня много дублирования в классах Android, таких как Activity, или в каком-то бизнес-классе для синтаксического анализатора xml, но это то же самое!

Обязательно: какой-то базовый класс или утилита для xmlpullparser, чтобы весь синтаксический анализ выполнялся в одном классе; Мне просто нужно отправить ему URL-адрес XML или WebService, и я получу значения и некоторые утилиты, если они есть.

Вот что у меня на занятиях:

       int count = 0;
    try {
        srv = new URL(
                "URL Web Service");
        factory = XmlPullParserFactory.newInstance();
        factory.setNamespaceAware(false);
        xpp = factory.newPullParser();
        xpp.setInput(XMLUtility.getInputStream(srv), "UTF_8");
        insideItem = false;
        int eventType = xpp.getEventType();
        while (eventType != XmlPullParser.END_DOCUMENT) {
            if (eventType == XmlPullParser.START_TAG) {
                if (xpp.getName().equalsIgnoreCase(tag)) {
                    insideItem = true;
                } else if (xpp.getName().equalsIgnoreCase(SId)) {
                    if (insideItem)
                        id.add(xpp.nextText()); // extract the headline
                } else if (xpp.getName().equalsIgnoreCase(SEn)) {
                    if (insideItem)
                        enable.add(xpp.nextText());
                }
            } else if (eventType == XmlPullParser.END_TAG
                    && xpp.getName().equalsIgnoreCase(tag)) {
                insideItem = false;
                checkEnable.add(id.get(count) + "," + enable.get(count));
                count++;
            }
            eventType = xpp.next();
        }
    } catch (IOException e) {
        e.printStackTrace();
    } catch (XmlPullParserException e) {
        e.printStackTrace();
    }

Этот код дублируется; просто поменяйте тег. Любые идеи?


person Java Dev    schedule 10.12.2012    source источник
comment
Вы нашли свое решение? Если нет, не могли бы вы уточнить ваши требования.   -  person Abhishek    schedule 10.06.2013


Ответы (1)


использовать xstream

http://x-stream.github.io/download.html

Вы можете определить класс ответа для xml и просто класс объекта или класс pojo ..

person Rockin    schedule 27.06.2013