gpt4 book ai didi

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

转载 作者:塔克拉玛干 更新时间:2023-11-01 21:38:30 26 4
gpt4 key购买 nike

我有这个数据结构:

<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”类。

Estates.java 类:

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

@Attribute
private String version;
}

Estate.java 类:

public class Estate { 
@Attribute
private String id;

@Element(required=false)
private String description;

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

即,我为提供者使用 @ElementList ( List&lt;Estate&gt; providers ),但这样我只能使用一个提供者列表(有两个列表,如我的示例所示,给出:

"ERROR/com.simplexml.XmlActivity(4266): Uncaught exception: org.simpleframework.xml.core.PersistenceException: Element 'providers' declared twice at line 1").

此外,我无法获取“名称”属性。实际上,我想我必须放弃“List<Estate> providers”方法,但如何替换它呢?我应该使用“集合”吗?

最佳答案

请注意,simple-xml 还允许您以允许列表内联的方式设置 POJO。换句话说,您可以取消 <providersList>元素,仍然是 <provider> 的数组s 将是可识别的。

当您无法控制接收到的 XML 的结构时,这一点很重要。在您的情况下,如果您按照原始问题坚持使用 XML 定义,您将对其进行注释:

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

关于Android,simple-xml,如何声明一个元素列表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7001052/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com