Atom在Android中提供简单XML解析和改进
我正在尝试为几个有趣的站点构建Atom和RSS2.0的RSS阅读器。这是Android上的应用程序。该应用程序使用改进来获取提要的xml,并使用简单的xml转换器来解析xml。当我让RSS部分工作时,我面临着Atom提要的问题 我试图解析的链接是:- 我得到一个例外:-Atom在Android中提供简单XML解析和改进,android,xml,retrofit,Android,Xml,Retrofit,我正在尝试为几个有趣的站点构建Atom和RSS2.0的RSS阅读器。这是Android上的应用程序。该应用程序使用改进来获取提要的xml,并使用简单的xml转换器来解析xml。当我让RSS部分工作时,我面临着Atom提要的问题 我试图解析的链接是:- 我得到一个例外:- Caused by: org.simpleframework.xml.core.PersistenceException: Element 'link' is already used with @org.simpleframe
Caused by: org.simpleframework.xml.core.PersistenceException: Element 'link' is already used with @org.simpleframework.xml.Element(data=false, name=link, required=false, type=void) on field 'link' public com.gtd.isnb.comm.retrofit.atom.EntryElement$Link com.gtd.isnb.comm.retrofit.atom.EntryElement.link at line 1
at org.simpleframework.xml.core.Variable$Adapter.read(Variable.java:484)
at org.simpleframework.xml.core.Variable$Adapter.read(Variable.java:462)
at org.simpleframework.xml.core.Composite.readVariable(Composite.java:623)
at org.simpleframework.xml.core.Composite.readInstance(Composite.java:573)
at org.simpleframework.xml.core.Composite.readUnion(Composite.java:549)
at org.simpleframework.xml.core.Composite.readElement(Composite.java:532)
at org.simpleframework.xml.core.Composite.readElements(Composite.java:445)
at org.simpleframework.xml.core.Composite.access$400(Composite.java:59)
at org.simpleframework.xml.core.Composite$Builder.read(Composite.java:1383)
at org.simpleframework.xml.core.Composite.read(Composite.java:201)
at org.simpleframework.xml.core.Composite.read(Composite.java:148)
at org.simpleframework.xml.core.Traverser.read(Traverser.java:92)
at org.simpleframework.xml.core.CompositeInlineList.read(CompositeInlineList.java:190)
at org.simpleframework.xml.core.CompositeInlineList.read(CompositeInlineList.java:167)
at org.simpleframework.xml.core.CompositeInlineList.read(CompositeInlineList.java:124)
at org.simpleframework.xml.core.Composite.readVariable(Composite.java:623)
at org.simpleframework.xml.core.Composite.readInstance(Composite.java:573)
at org.simpleframework.xml.core.Composite.readUnion(Composite.java:549)
at org.simpleframework.xml.core.Composite.readElement(Composite.java:532)
at org.simpleframework.xml.core.Composite.readElements(Composite.java:445)
at org.simpleframework.xml.core.Composite.access$400(Composite.java:59)
at org.simpleframework.xml.core.Composite$Builder.read(Composite.java:1383)
at org.simpleframework.xml.core.Composite.read(Composite.java:201)
at org.simpleframework.xml.core.Composite.read(Composite.java:148)
at org.simpleframework.xml.core.Traverser.read(Traverser.java:92)
at org.simpleframework.xml.core.Persister.read(Persister.java:625)
at org.simpleframework.xml.core.Persister.read(Persister.java:606)
at org.simpleframework.xml.core.Persister.read(Persister.java:584)
at org.simpleframework.xml.core.Persister.read(Persister.java:562)
at org.simpleframework.xml.core.Persister.read(Persister.java:462)
at com.mobprofs.retrofit.converters.SimpleXmlConverter.fromBody(SimpleXmlConverter.java:70)
我的POJO是:
@Root (name = "feed", strict=false)
public class FeedElement
{
@ElementList ( inline = true )
List<EntryElement > entries;
public List< EntryElement > getEntries ()
{
return entries;
}
}
@Root ( name = "entry", strict = false )
public class EntryElement
{
@Element ( name = "title" )
public String title;
@Element ( name = "link", required = false )
public Link link;
@Element ( name = "id" )
public String id;
@Element ( name = "updated" )
public String updated;
@Element ( name = "summary" )
public String summary;
}
@Root (name="link")
public class EntryLinkElement
{
@Attribute ( name = "rel" )
public String rel;
@Attribute ( name = "type" )
public String type;
@Attribute ( name = "href" )
public String href;
@Attribute ( name = "title" )
public String title;
}
此链接将向您展示使用改型的热解析xml 这里有一个例子你可以试试
@GET("/{path}")
FeedElement getAtomFeeds(@Path(value="path", encode=false) String path);