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

Программирование Android

Войти
Регистрация
Восстановить пароль
 
PhantomR
5 / 5 / 0
Регистрация: 04.02.2016
Сообщений: 78
#1

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

02.09.2016, 16:32. Просмотров 555. Ответов 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
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
02.09.2016, 16:32
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Сложный парсинг XML через Retrofit SimpleXml-Converter Simple XML (Программирование Android):

Retrofit + simpleXml может у кого есть примеры? - Программирование Android
Retrofit + simpleXml может у кого есть примеры рабочего кода? Что-то с JSON чего хочешь. А с XML почти ничего нету в инете.

Парсинг XML - Программирование Android
Решил освоить Android написал первое приложение(программка расшифровывает статус контролера банкомата из БД ошибок в формате SQLite и...

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

Парсинг XML - Программирование Android
try { DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance(); DocumentBuilder builder =...

Парсинг XML - Программирование Android
Пробую так String data = getIntent().getStringExtra(&quot;data&quot;); try { DocumentBuilderFactory factory =...

Парсинг XML по URL - Программирование Android
Нужно взять строку из тега &lt;company&gt; отсюда xml. Можно как-то обойтись без циклов?

0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
02.09.2016, 16:32
Привет! Вот еще темы с ответами:

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

Парсинг большого xml - Программирование Android
Если есть большой JSON его можно парсить при помощи библиотеки gson, а если есть большой xml как этот https://lenta.ru/rss. Чем его лучше...

XML Парсинг (yml) - Программирование Android
Вопрос таков. Чем распарсить yml страницу http://ufa.farfor.ru/getyml/?key=ukAXxeJYZN Парсил XML с другого сайта, но таким образом не...

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


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
1
Ответ Создать тему
Опции темы

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