我正在尝试使用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等同于接受的答案。
提前致谢。
答案 0 :(得分:2)
N.B,这只是阅读文档(唯一的问题是它应该是name =“Author”还是entry =“Author”):
@Element
public class ItemAttributes {
@Element(inline=true, type=String.class, name="Author")
public List<String> authors;
...
}