[英]Sorted Unmarshalling using JAXB
假设我有一个XML:
<root>
<node>
<order-id>4</order-id>
.....
</node>
<node>
<order-id>1</order-id>
....
</node>
</root>
当我解组这个xml时,我希望我得到的List<Node>
是按order-id
值排序的。
有没有办法使用JAXB直接获取排序列表?
如果您不介意设置而不是列表,请尝试
@XmlRootElement(name="node")
class Node implements Comparable<Node> {
@XmlElement(name="order-id")
int orderId;
@Override
public int compareTo(Node n) {
return orderId - n.orderId;
}
}
@XmlRootElement(name="root")
class Root {
@XmlElement(name="node")
Set<Node> nodes = new TreeSet<>();
}
工作良好。 如果Set不是一个选项,则将Root更改为
@XmlRootElement(name="root")
class Root {
List<Node> nodes;
@XmlElement(name="node")
public void setNodes(Node[] nodes) {
Arrays.sort(nodes);
this.nodes = Arrays.asList(nodes);
}
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.