android - 如何在同一级别解析具有重复元素的此 xml 文件

标签 android retrofit simple-framework

几个小时后,我检查了周围的一些其他答案,但找不到从 rss 提要中正确读取此特定 xml 文件的方法。我在同一级别复制了一个元素:语言

这是 rss 提要:

<rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:sy="http://purl.org/rss/1.0/modules/syndication/" xmlns:media="http://search.yahoo.com/mrss/" xmlns:veinteminutos="http://www.20minutos.es/" version="2.0">
  <channel>
    <title>20minutos.es</title>
    <link>http://www.20minutos.es/</link>
    <description> 
    </description>
    <language>es</language>
    <pubDate>Fri, 02 Jan 2015 17:02:55 +0100</pubDate>
    <lastBuildDate>Fri, 02 Jan 2015 17:02:55 +0100</lastBuildDate>
    <ttl>2</ttl>
    <sy:updatePeriod>hourly</sy:updatePeriod>
    <sy:updateFrequency>2</sy:updateFrequency>
    <sy:updateBase>2015-01-02T17:02:55+01:00</sy:updateBase>
    <dc:language>es</dc:language>
    <item>...</item>
    <item>...</item>
    <item>...</item>
    <item>...</item>
  </channel>
</rss>

这是我的类(class)声明,但我不确定我必须如何处理它:

public class Channel
{
    @Element(name = "pubDate")
    private String pubDate;

    @Element(name = "title")
    private String title;

    @Element(name = "description")
    private String description;

    @Element(name = "link")
    private String link;

    @Element(name = "lastBuildDate")
    private String lastBuildDate;

    @ElementList(inline = true)
    private ArrayList<Item> item;

    @Element(name = "language")
    private String language;

    @Element(name = "ttl")
    private String ttl;

    @Element(name = "updatePeriod")
    private String updatePeriod;

    @Element(name = "updateFrequency")
    private String updateFrequency;

    @Element(name = "updateBase")
    private String updateBase;

    @Namespace(reference="http://purl.org/dc/elements/1.1/", prefix = "dc")
    @Element(name = "language")
    private String dclanguage;

    public String getPubDate ()
    {
        return pubDate;
    }

    public void setPubDate (String pubDate)
    {
        this.pubDate = pubDate;
    }

    public String getTitle ()
    {
        return title;
    }

    public void setTitle (String title)
    {
        this.title = title;
    }

    public String getDescription ()
    {
        return description;
    }

    public void setDescription (String description)
    {
        this.description = description;
    }

    public String getLink ()
    {
        return link;
    }

    public void setLink (String link)
    {
        this.link = link;
    }

    public String getLastBuildDate ()
    {
        return lastBuildDate;
    }

    public void setLastBuildDate (String lastBuildDate)
    {
        this.lastBuildDate = lastBuildDate;
    }

    public ArrayList<Item> getItem ()
    {
        return item;
    }

    public void setItem (ArrayList<Item> item)
    {
        this.item = item;
    }

    public String getLanguage ()
    {
        return language;
    }

    public void setLanguage (String language)
    {
        this.language = language;
    }

    public String getTtl ()
    {
        return ttl;
    }

    public void setTtl (String ttl)
    {
        this.ttl = ttl;
    }

    public String getUpdatePeriod() {
        return updatePeriod;
    }

    public void setUpdatePeriod(String updatePeriod) {
        this.updatePeriod = updatePeriod;
    }

    public String getUpdateFrequency() {
        return updateFrequency;
    }

    public void setUpdateFrequency(String updateFrequency) {
        this.updateFrequency = updateFrequency;
    }

    public String getUpdateBase() {
        return updateBase;
    }

    public void setUpdateBase(String updateBase) {
        this.updateBase = updateBase;
    }

    public String getDclanguage() {
        return dclanguage;
    }

    public void setDclanguage(String dclanguage) {
        this.dclanguage = dclanguage;
    }


}

我收到错误“org.simpleframework.xml.core.PersistenceException:名称‘language’在私有(private)字段‘language’上的重复注释

提前致谢....

最佳答案

抱歉,这是一个内部错误。

我有同样的问题,我修改了代码以获得阅读 RSS/ATOM 提要所需的内容。我下载了简单的xml框架的源代码,看看有什么问题。

在 Composite 类中,方法 readElement(使用名称搜索注释)忽略前缀并且没有找到 ATOM 或 Itunes 元素,我更改了它并且成功了。

让我们希望有人在未来的版本中做出改变。

关于android - 如何在同一级别解析具有重复元素的此 xml 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27746127/

相关文章:

java - 错误 : Failed to resolve: com. android.support :mediarouter-v7:23. 4.0

android - 改造 - @Body 参数不能与表单或多部分编码一起使用。 (参数#1)

java - Android、Retrofit、RxJava - 将多个实体的字段合并为一个实体

java - 使用 Retrofit 反序列化带有文本和子标签的 XML 标签

android - 如何从android中的retrofit 2和rxjava获取xml数据

Java 简单 XML 转换器将元素写入 OutputNode

android - 在 ActionMode 之上显示 ActionMode

android - 如何增加 MPAndroidChart 中的水平图表值文本大小

java - 如何将文件存储在Android的缓存目录中?

android - 如何在 retrofit 多部分请求中发送对象数组