我改造调用失败,出现错误:如何解析这个XML到Java对象(Retrofit2 + SimpleXML)? (错误的PersistenceException)
org.simpleframework.xml.core.PersistenceException: Element 'item' is already used with @org.simpleframework.xml.ElementList(data=false, empty=true, entry=, inline=false, name=item, required=false, type=void) on field 'medias' private java.util.ArrayList packageName.FeedTag.medias at line 58
,我猜是由不正确地映射到XML POJO类引起的。
那么,谁能告诉我我的代码有什么问题?我试过看SimpleXML的例子和教程,但我找不到像我这样的用例的信息。 (这是我第一次改造和/或SimpleXML的工作。)
这是我的XML
<xml>
<feed>
<item>
<id>0</id>
<title>Lorem ipsum</title>
</item>
<item>
<id>1</id>
<title>Lorem ipsum dolor</title>
<comments>
<item>
<id>3</id>
</item>
</comments>
<medias>
<item>
<id>4</id>
<title>Media 1</title>
</item>
<item>
<id>8</id>
<title>Media 2</title>
</item>
</medias>
</item>
</feed>
</xml>
我的对象是这样的:
XmlTag.java
@Root(name = "item", strict = false)
public class XmlTag{
@Path("feed")
@ElementList(name = "item", required = false)
private List<FeedTag> feeds;
//empty constructor, setter, getter...
}
FeedTag.java
@Root(name = "item", strict = false)
public class FeedTag{
@Element(name = "title", required = false)
private String title;
@Path("comments")
@ElementList(name = "item", required = false)
private List<CommentTag> comments;
@Path("medias")
@ElementList(name = "item", required = false)
private List<MediaTag> medias;
//empty constructor, setter, getter...
}
CommentTag和MediaTag与FeedTag相似。