Форум программистов, компьютерный форум, киберфорум
Наши страницы
Программирование Android
Войти
Регистрация
Восстановить пароль
Другие темы раздела
Программирование Android Открывать из стороннего приложениям мое приложение http://www.cyberforum.ru/android-dev/thread2226220.html
Здравствуйте! Я новичок в android. Столкнулся с интеграцией с приложением на 1С. Из него не могут открыть мое приложение . У себя они пытаются так: НовВз = Новый...
В приложении MyApp произошла ошибка. А в логах пусто. Как выловить? Программирование Android
Запускаю приложение на реальном телефоне в режиме отладчика. Отладка работает, бряки ловятся, логи пишутся. Работает сервис приема сообщений с сервера. Если через меню телефона вывожу список...
Программа для ограничения доступа Программирование Android
Нужно реализовать такую задумку: Нужна программа, которая блокировала бы: Камеру, Микрофон, Определенные приложения (по выбору администратора), интернет(сотовую связь), wifi, bluetooth,...
Программирование Android Приложение "Таблица Умножения" Нужна помощь в написании простого приложения таблицы умножения 9х9 ,на экране появляются задание (5x5 = , 6x6= и т.п.) человек должен написать ответ ,и так 10 попыток . В конце вывод сколько... http://www.cyberforum.ru/android-dev/thread2225769.html
Программирование Android Меню настроек,передача переменной http://www.cyberforum.ru/android-dev/thread2225692.html
Всем привет,возник очень странный вопрос... Есть данный код,по логике должен менять тип карты public static class GeneralPreferenceFragment extends PreferenceFragment { @Override ...
Программирование Android Чат между двумя приложениями
Здравствуйте, подскажите как сделать чат между двумя разными приложениями android
Программирование Android Передача в Service постоянно обновляющего свои значения объекта
Передаю в Service объект с помощью Parceble, но он сохраняет фиксированное значение, не учитывая его обновления. Как правильно передать объект? public class MainActivity extends AppCompatActivity...
Программирование Android Некорректная работа ActionBar в одной из активити Доброго времени суток! Имеется приложение, главный макет Navigation Drawer Activity. Имеются две дополнительные Emty Activity. С кодом. Оба работают нормально. Но один является парсером. И у... http://www.cyberforum.ru/android-dev/thread2225386.html
Программирование Android Удаление папок cache http://www.cyberforum.ru/android-dev/thread2225382.html
Пытаюсь удалить папки через root права, по одной папки удаляет без проблем, но когда, я делаю в массив ссылки на папки, то программа зависает, можно как нибудь проверить удалять через Asynctask ?...
Программирование Android Ошибка ADB not found Пытаюсь запустить приложение созданное в андроид студио на эмуляторе genymotion, но при запуске выдается ошибка ADB not found... Подскажите, пожалуйста, что это значит и как это можно исправить??? http://www.cyberforum.ru/android-dev/thread2225217.html
VASSUV
MiThEoN
443 / 307 / 35
Регистрация: 31.10.2009
Сообщений: 505
Записей в блоге: 2
Завершенные тесты: 1
19.04.2018, 11:08 0

Парсинг XML URL

19.04.2018, 11:08. Просмотров 417. Ответов 8
Метки (Все метки)

Ответ

Может кому-то покажется глупо, но когда мне пришлось работать в одном проекте с несколькими серверами, которые присылают разные форматы ответов, где-то Json, где-то XML. Я подсчитал что лучше для меня будет в приложении работать с одним форматом - JSON. Я написал простенький парсер XmlToJson

Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
public class XmlParser {
    public static final String XML_PARSER = "XmlParser";
    public static final String VALUE = "value";
    @Inject
    Logger logger;
 
    private XmlPullParser parser;
    private int eventType;
 
    public XmlParser() {
        App.getComponent().inject(this);
    }
 
    public JsonValue parse(String text) {
        try {
            parser = XmlPullParserFactory.newInstance().newPullParser();
            parser.setFeature(XmlPullParser.FEATURE_PROCESS_NAMESPACES, false);
            parser.setInput(new StringReader(text));
            final JsonValue value = getJsonValue();
            logger.log(XML_PARSER, value);
            return value;
        } catch (Exception e) {
            logger.logExc(XML_PARSER, e);
            return new JsonObject();
        }
    }
 
    private JsonValue getJsonValue() throws XmlPullParserException, IOException {
        final JsonObject value = new JsonObject();
        JsonValue tempValue;
        String tempString;
        for (int i = 0; i < parser.getAttributeCount(); i++) {
            value.add("@" + parser.getAttributeName(i), parser.getAttributeValue(i));
        }
        eventType = parser.next();
        while (true) {
            switch (eventType) {
                case XmlPullParser.TEXT:
                    final String text = parser.getText().trim();
                    eventType = parser.next();
 
                    if (text.isEmpty()) continue;
 
                    if (value.names().isEmpty())
                        return new JsonString(text);
                    else
                        return value.add(VALUE, text);
 
                case XmlPullParser.START_TAG:
                    tempString = parser.getName();
                    tempValue = getJsonValue();
 
                    if (tempString == null || tempValue == null)
                        break;
 
                    if (value.get(tempString) != null) {
                        final JsonValue oldValue = value.get(tempString);
                        if (oldValue.isArray()) {
                            oldValue.asArray().add(tempValue);
                        } else {
                            value.set(tempString, new JsonArray().add(oldValue).add(tempValue));
                        }
 
                    } else {
                        value.asObject().add(tempString, tempValue);
                    }
 
                    if (eventType == XmlPullParser.END_TAG)
                        eventType = parser.next();
 
                    continue;
            }
            break;
        }
        return value;
    }
}
Решение меня полностью устроило, и я снова забыл что такое XML

Вернуться к обсуждению:
Парсинг XML URL
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
19.04.2018, 11:08

Парсинг XML
Нужно роспарсить XML, который приходть с http://shop.podolyany.com.ua/api/rest/products/. Наверное...

Парсинг XML на АНДРОИД
Суть приложения - парсит XML файл с сервера ( извлекает значение тега &lt;bid&gt;). Выводит это значение...

XML HTTP парсинг
Здравствуйте. На сервере есть тестовый php файл с сontent-type: text/xml. Он выводит сообщения с...

0
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2019, vBulletin Solutions, Inc.
Рейтинг@Mail.ru