2015-06-22 7 views
0

Я пытаюсь разобрать некоторый XML с использованием простой XML-структуры, однако у меня возникают проблемы с его работой. Это модель, которую я использовал:Анализ XML с использованием простой XML-структуры в JAva

import org.simpleframework.xml.Element; 
import org.simpleframework.xml.Root; 

@Root(name = "rootelement", strict = false) 
public class XMLModel { 
    @Element(name = "tag") 
    private TagModel tag; 

    @Element(name = "id", required = false) 
    private String id; 

    @Element(name = "url", required = false) 
    private String url; 

    public TagModel getTag() { 
     return tag; 
    } 

    public void setTag(TagModel tag) { 
     this.tag = tag; 
    } 

    public String getId() { 
     return id; 
    } 

    public void setId(String videoId) { 
     this.id = id; 
    } 

    public String getUrl() { 
     return url; 
    } 

    public void setUrl(String url) { 
     this.url = url; 
    } 
} 

И файл TagModel является:

import org.simpleframework.xml.Attribute; 

public class TagModel implements Parcelable { 
    @Attribute(name = "data", required = false) 
    private String data; 

    public String getData() { 
     return data; 
    } 

    public void setData(String data) { 
     this.data = data; 
    } 
} 

Вот XML Я пытаюсь разобрать.

<?xml version="1.0" encoding="UTF-8"?> 
<rootelement version="1.0"> 
    <tag data="none"/> 
    <id><![CDATA[95757410]]></id> 
    <url><![CDATA[http://google.com]]></url> 
</rootelement> 

Я получаю следующее сообщение об ошибке с текущим кодом:

retrofit.RetrofitError: org.simpleframework.xml.core.PersistenceException: Constructor not matched for class 

Если кто-нибудь знает, как я мог бы получить различные данные (в том числе TagModel) Я бы очень признателен!

Спасибо за помощь, Daniel

ответ

0

я понял, что ошибка была из-за не имея конструктор в моделях.

Например, в TagModel мне нужно добавить следующее:

public TagModel(@Attribute(name = "data") String data) { 
    this.data = data; 
} 
Смежные вопросы