我想用XML创建内联列表。像这样:
<numbers>
<phone>1234</phone>
<phone>5678</phone>
<phone>3456</phone>
</numbers>
教程here强调了如何完成。
现在,我不知道如何处理
public Order(@Attribute(name="name") String name,
@Element(name="product") String product)
或
public OrderManager(@ElementList(name="orders") List<Order> orders) {
this.orders = orders;
}
我从未使用过Java中的列表。
我的情况:
查询时,数据库将填充数组phone_numbers[x]
。我怎么能使用数组和构造函数注入中的值生成上面的XML文件?
答案 0 :(得分:1)
假设您有一个类PhoneNumbers
,如此:
@Root
public class PhoneNumbers {
@ElementArray(name="numbers", entry = "phone")
private String[] phones;
public PhoneNumbers(String[] phones) {
this.phones = phones;
}
}
在这种情况下,无需转换为List
。
String[] phone_numbers= new String[] { "1234", "5678" }; // populate from DB instead
PhoneNumbers numbers = new PhoneNumbers(phone_numbers);
// to serialize
Serializer serializer = new Persister();
serializer.write(numbers, System.out);
这将打印出以下XML:
<phoneNumbers>
<numbers length="2">
<phone>1234</phone>
<phone>5678</phone>
</numbers>
</phoneNumbers>
Simple框架无法打印根元素。因此,如果您只需序列化numbers
元素,则可以将String剥离根元素。
就是这样!