如何从具有多个相同命名子元素的元素中解析对象。 (SimpleXML Android)

时间:2016-01-26 12:34:00

标签: android xml xml-parsing simple-framework

我尝试将一些XML解析为对象(Android)并使用Simple XML库。我可以解析一些带有子元素或列表的元素,但是当一个元素有多个具有相同标记名称的子元素时,我会收到一个错误:

元素'项目'已经与....一起使用了

我知道具有相同名称的标签是个问题,但每个标签都有另一个属性,因此可用于解决该问题。我尝试了很多,但我无法完成它。

<Channel>
   <News>
        <Item kind="dunno">
                //An string with some info
        </Item>
        <Item kind="anotherOne">
                 //An string with some info
        </Item>
        <Item kind="Pfff">
                 //An string with some info
        </Item>
    </News>
</Channel>

我尝试了以下内容:

@Root(name = "Channel")
public class Channel
    {
        @Elementlist(inline = true)
        private List<News> news;
    }


@Root(name = "News")
public class News
    {
        @Element(name = item)
        private String item;
    }

但这不起作用因为alrealy使用的项目。我试着把它列为一个列表,但也不起作用。我尝试了更多的东西,但正如我所说,我无法完成它。

我想拥有的是我有一个Chanel对象,其中包含一个或多个包含一个或多个项目的新闻对象。有时候只有一件物品,有时甚至更多。

1 个答案:

答案 0 :(得分:0)

我找到了解决方案。 Insead of

@Root(name = "Channel")
public class Channel
{
    @Elementlist(inline = true)
    private List<News> news;
}

我需要做出理解。

@Root(name = "Channel")
public class Channel
{
    @Elementlist(name="News")
    private List<String> news;
}

库自动识别将这些项添加到列表中的项目。不再需要整个新闻类。