Android,simple-xml,如何声明一个元素列表?

前端之家收集整理的这篇文章主要介绍了Android,simple-xml,如何声明一个元素列表?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我有这个数据结构:
<estates version="0.1">

 <provider name="Foo">
  <estate id="12345678">
   <description>aaa</description>
   <size>300</size>
  </estate>
  <estate id="12345679">
   <description>bbb</description>
   <size>450</size>
  </estate>
 </provider>

 <provider name="Bar">
  <estate id="987654321">
   <description>yyy</description>
   <size>100</size>
  </estate>
  <estate id="987654320">
   <description>zzz</description>
   <size>240</size>
  </estate>
 </provider>

</estates>

我从我的网络服务得到的.
我想使用simple-xml库来实例化Android“Estates”,“Provider”和“Estate”类.

Class Estates.java:

@Root
public class Estates {
   @ElementList
   private List<Estate> providers;

   @Attribute
   private String version;
}

Class Estate.java:

public class Estate { 
   @Attribute
   private String id;

   @Element(required=false)
   private String description;

   @Element(required=false)
   private Integers size;
}

也就是说,我使用一个@ElementList(List< Estate>提供者)作为提供者,但是我只能使用一个提供者列表(有两个列表,如我的例子所示:“ERROR / com.simplexml.XmlActivity(4266 ):未捕获异常:org.simpleframework.xml.core.PersistenceException:元素“提供程序在第1行声明两次”).更多,我不能得到“名称属性.在实践中,我想我必须驳斥“列表提供者”的做法,但如何替换呢?我应该使用“收藏”吗?

解决方法

请注意,simple-xml还允许您以这样的方式设置POJO,以允许您将列表放在一起.换句话说,你可以免除< providersList>元素,并且仍然可以识别< provider>的数组.

当您无法控制正在接收的XML的结构时,这很重要.在您的情况下,如果您按照原始问题坚持XML定义,则可以对其进行注释:

@ElementList(inline=true)
   private List<Estate> providers;

猜你在找的Android相关文章