最近工作内容需要对Java对象做XML输出,公司里常用的两种框架是XStream和XML Beans。两种都我都用了,对于普通的,schema不是很复杂的XML文件来说选择XStream更方便。这篇文章先介绍一下XStream的用法,XML Beans的用法另外再介绍。
1. 先给个要输出的xml文档的例子:
2. 首先定义两个类:Students和Student,其中Students有一个List<Student>,Student有三个Field:name,id,age
3. 使用XStream将Object写入XML:
4. 输出的结果和我们的期待的并不完全一样:
如何将类节点名前面的路径名和多出来的节点"studentList"去掉,需要用到XStream提供的几个简单方法:
XStream还提供给aliasAttribute(Class, String, String) 和 aliasField(String, Class, String) 给类成员命名别名。
4. 将Field定义为XML节点的属性:比如如果我们想将节点"id"变为student的属性,通过设置xStream也可以很方便实现,而不需要修改类。
最终我们的XML文档输出如下: