我应该如何为这种xml响应创建类?
<delivery_zones>
<zone>3</zone>
<zone_name>....</zone_name>
<zone>10</zone>
<zone_name>....</zone_name>
<zone>7</zone>
<zone_name>....</zone_name>
<zone>9</zone>
<zone_name>....</zone_name>
<zone>13</zone>
<zone_name>....</zone_name>
</delivery_zones>
谢谢..
答案 0 :(得分:0)
写一个班级
class Zone {
int id;
String name;
public(int id, String name) {
this.id = id;
this.name = name;
}
}
创建Zone对象列表。解析响应并为每个区域创建一个Zone类的对象,如果它不包含该区域,则添加到列表中。
我认为这可能会对你有所帮助。如果您需要有关xml解析的更多信息。这个链接https://stackoverflow.com/a/5059411/7867325可以帮助您。
答案 1 :(得分:0)
这是整个回复
<rss version="2.0" >
<channel>
<record>46</record>
<total_record>46</total_record>
<item>
<name>1 Can</name>
<description />
<delivery_time>24 hours</delivery_time>
<img_1 />
<img_2 />
<img_3 />
<thumb_1 />
<thumb_2 />
<thumb_3 />
<delivery_zones>
<zone>5</zone>
<zone_name>Free Delivery</zone_name>
</delivery_zones>
<price_records>1</price_records>
</item>
<item>
....
</item>
</channel>
</rss>
这是我的班级:
public static class Item {
@Element(required = false)
public String name;
@Element(name = "delivery_zones", required = true)
public DeliveryZones delivery_zones;
// @Path(value = "delivery_zones")
// @ElementList(name = "zone", required = true, inline = true)
// private List<Integer> zone;
//
// @Path(value = "delivery_zones")
// @ElementList(name = "zone_name", required = true, inline = true)
// private List<String> zoneName;
// @Path(value = "delivery_zones")
// @ElementList(name = "zone", required = true, inline = true)
// public List<Integer> ids;
//
// @Path(value = "delivery_zones")
// @ElementList(name = "zone_name", required = true, inline = true)
// public List<String> names;
}
答案 2 :(得分:0)
如果有人遇到同样的问题,这里有解决方法:
public static class Zone {
@Element(name = "zone", required = false)
public String zone;
}
public static class ZoneName {
@Element(name = "zone_name", required = false)
public String zone_name;
}
public static class DeliveryZones {
@ElementList(entry = "zone", inline = true)
public List<Zone> zones;
@ElementList(entry = "zone_name", inline = true)
public List<ZoneName> zone_name;
}
答案 3 :(得分:0)
另一种解决方案
@Root
public static class DeliveryZones {
@ElementList(entry = "zone", inline = true)
public List<String> zones;
@ElementList(entry = "zone_name", inline = true)
public List<String> zone_name;
}
并在父类中
@Element(name = "delivery_zones", required = true)
public DeliveryZones delivery_zones;