与SimpleXML和Java同名的多个元素

时间:2011-08-14 20:37:06

标签: java android xml amazon simple-framework

我正在尝试使用SimpleXML来解析XML文档(来自Amazon Product Advertising API的书的ItemLookupResponse),其中包含以下元素:

<ItemAttributes>
  <Author>Shane Conder</Author>
  <Author>Lauren Darcey</Author>
  <Manufacturer>Pearson Educacion</Manufacturer>
  <ProductGroup>Book</ProductGroup>
  <Title>Android Wireless Application Development: Barnes & Noble Special Edition</Title>
</ItemAttributes>

我的问题是我不知道如何处理多个可能的Author元素。

这就是我现在对相应的POJO(Plain Old Java Object)所拥有的内容,请记住它没有处理多个Author的情况:

@Element
public class ItemAttributes {
    @Element
    public String Author;

    @Element
    public String Manufacturer;

    @Element
    public String Title;
}

(我不关心ProductGroup,所以它不在课堂上 - 我只是将SimpleXML的strict模式设置为off以允许这样做。)< / p>

我在the documentation中找不到与这种情况相符的例子。使用带有ElementList (inline=true)的{​​{1}}似乎沿着正确的方向行,但我没有看到如何为String执行此操作(而不是单独的Author类,我不需要也不需要看看它是如何工作的。)

这是一个类似的问题和答案,但对于PHP:php - simpleXML how to access a specific element with the same name as others?我不知道Java等同于接受的答案。

提前致谢。

1 个答案:

答案 0 :(得分:2)

N.B,这只是阅读文档(唯一的问题是它应该是name =“Author”还是entry =“Author”):

@Element
public class ItemAttributes {
    @Element(inline=true, type=String.class, name="Author")
    public List<String> authors;
...
}