Форум программистов, компьютерный форум, киберфорум
Наши страницы

Сложный парсинг XML через Retrofit SimpleXml-Converter Simple XML - Программирование Android

Войти
Регистрация
Восстановить пароль
Другие темы раздела
Программирование Android Виджет детальной информации в андроид http://www.cyberforum.ru/android-dev/thread1801849.html
Вот например у меня есть список городов во фрагменте(в списке пункт - город). И я хочу следующее чтобы по нажатии на этот пункт разворачивалась детальная информация о нем(ну детальное описание...
Программирование Android Работа с тенями Кто нибудь встречал толковый мануал по теням для Андроид 5.0+? а то в этом "описании" - https://developer.android.com/training/material/shadows-clipping.html толком ничего нет. Ну тени ну да есть... http://www.cyberforum.ru/android-dev/thread1801776.html
SharedPreferences сохранить на флешку Программирование Android
Гуру, САБЖ! Есть ли СТАНДАРТНОЕ решение для подобного? Хочу сохранять настройки в папку на внешнюю "флешку" (ExternalStorage). Использовать для мелкой утилиты базу не охота. Как и писать...
Множество условий selection в query Программирование Android
Всем привет. Подскажите, пожалуйста, как задать selection для query так: Столбец1 = ? и Столбец2 = ? и (Стоблец3 = ? или Стоблец4 = ?)
Программирование Android Где хранятся View элементы http://www.cyberforum.ru/android-dev/thread1801640.html
Я знаю что объекты активити хранятся в стеке активити в UI потоке. Фрагменты в стеке фрагментов в FragmentManagerе так? а где тогда хранятся объекты View элементов(такие как Button, TextView и...
Программирование Android Android Studio таймер, картинка, как? Добрый день. 1) Как сделать так что бы TextView менялся каждую секунду? 2) Как сделать так что бы ImageView по клику увеличивался в 1.5 раза? подробнее

Показать сообщение отдельно
PhantomR
5 / 5 / 0
Регистрация: 04.02.2016
Сообщений: 78

Сложный парсинг XML через Retrofit SimpleXml-Converter Simple XML - Программирование Android

02.09.2016, 16:32. Просмотров 539. Ответов 0
Метки (Все метки)

Разбираюсь потиху, есть 2 вопроса.
1. Нужно ли всегда using Retrofit SimpleXml-Converter Simple XML парсить все элементы?
2. Есть страница http://ufa.farfor.ru/getyml/?key=ukAXxeJYZN. Как мне забрать только текст "340.00 гр" из


XML
1
<param name="Вес">340.00 гр</param>
При попытке парсинга пишет следующую ошибку:
09-02 14:37:13.554 11598-11598/com.example.pavel.lesson8 D/TAG: onFailure: java.lang.RuntimeException: org.simpleframework.xml.core.AttributeException: Attribute 'id' does not have a match in class com.example.pavel.lesson8.models.Offer at line 23

Java
1
2
3
4
5
6
7
8
9
10
@Root(name = "yml_catalog", strict = false)
public class OffersResponse {
    @Path("shop/offers")
    @ElementList(entry = "offer",inline = true)
    private static ArrayList<Offer> offerList;
 
    public ArrayList<Offer> getOfferList() {
        return offerList;
    }
}
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
@Root(name = "offer")
public class Offer {
    @Element(required = false, name = "url")
    private String url;
    @Element(required = false, name = "name")
    private String name;
    @Element(required = false, name = "price")
    private String price;
    @Element(required = false, name = "description")
    private String description;
    @Element(required = false, name = "picture")
    private String picture;
    @Element(required = false, name = "categoryId")
    private String categoryId;
    @Element(required = false, name = "param")
    private String param;
}
Добавлено через 17 минут
Итак я не игнорировал текст после <offer .... >

Решение:
Java
1
@Root(name = "offer", strict = false)
Вопрос про Вес остаётся:

.simpleframework.xml.core.PersistenceException: Element 'param' is already used with @org.simpleframework.xml.Element(data=false, name=param, required=false, type=void) on field 'param' private java.lang.String com.example.pavel.lesson8.models.Offer.param at line 39

Добавлено через 1 час 33 минуты
вопрос решился созданием листа параметров:

Java
1
2
 @ElementList(required = false, inline = true)
    private ArrayList<Param> paramList;
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
@Root(name = "param", strict = false)
public class Param {
    @Attribute(required = false, name = "name")
    public String weight;
    @Text(required = false)
    private String weight_text;
    @Attribute(required = false, name = "Диаметр")
    public String diameter;
    @Attribute(required = false, name = "Каллорийность")
    public String calories;
    @Attribute(required = false, name = "Белки")
    public String protein;
    @Attribute(required = false, name = "Жиры")
    public String fat;
    @Attribute(required = false, name = "Углеводы")
    public String carbohydrate;
    @Attribute(required = false, name = "Кол-во")
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru