XStream -- 非常简单实用的XML读写工具(一)
2010-05-24 19:05
393 查看
最近工作内容需要对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文档输出如下:
1. 先给个要输出的xml文档的例子:
<students> <student> <name>Peter</name> <id>1001</id> <age>15</age> <student> <student> <name>Mike</name> <id>1002</id> <age>16</age> <student> <students>
2. 首先定义两个类:Students和Student,其中Students有一个List<Student>,Student有三个Field:name,id,age
]public class Students { List studentList; public Students() { studentList = new ArrayList(); } public void addStudent(Student p) { studentList.add(p); } }
public class Student { private String name, id, age; public Student(String name, String id, String age){ this.name = name; this.id = id; this.age = age; } //Setter and Getter for name, id, age ...... }
3. 使用XStream将Object写入XML:
//XStream实例 XStream xStream = new XStream(); //定义xml的根节点"Students" Students root = new Students(); //定义根节点的两个子节点"Student" Student peter = new Student("peter", "1001", "15"); Student mike = new Student("mike", "1002", "16"); //添加到根节点上 root.addStudent(peter); root.addStudent(mike); // System.out.println(xStream.toXML(root));
4. 输出的结果和我们的期待的并不完全一样:
<de.dexin.student.Students> <studentList> <de.dexin.student.Student> <name>peter</name> <id>1001</id> <age>15</age> </de.dexin.student.Student> <de.dexin.student.Student> <name>mike</name> <id>1002</id> <age>16</age> </de.dexin.student.Student> </studentList> </de.dexin.student.Students>
如何将类节点名前面的路径名和多出来的节点"studentList"去掉,需要用到XStream提供的几个简单方法:
//Students类的别名 xStream.alias("students", Students.class); //Student类的别名 xStream.alias("student", Student.class); //不显示studentList节点 xStream.addImplicitCollection(Students.class, "studentList");
XStream还提供给aliasAttribute(Class, String, String) 和 aliasField(String, Class, String) 给类成员命名别名。
4. 将Field定义为XML节点的属性:比如如果我们想将节点"id"变为student的属性,通过设置xStream也可以很方便实现,而不需要修改类。
xStream.useAttributeFor(Student.class, "id");
最终我们的XML文档输出如下:
<students> <student id="1001"> <name>peter</name> <age>15</age> </student> <student id="1002"> <name>mike</name> <age>16</age> </student> </students>
相关文章推荐
- 简单实用XStream--生成xml以及返回对象
- xstream简单实用
- 关于Dom4j解析XML文件,外带上一个简单工具
- Android ui utils-简单实用的Android界面工具
- 回归简单实用的java调试工具JDB
- Aveiconifier是一个非常实用方便的制作ico格式文件的小工具~
- AutoTRACE是分析SQL的执行计划,执行效率的一个非常简单方便的工具
- c++使用xml简单读写 tinyxml2.cpp使用
- JMeter 的测试工具的简单实用
- 持续集成工具Hudson安装方法(非常简单)
- 玩转HTML5移动页面_非常实用的css\js\图片优化等工具
- 时间插件 非常简单实用
- XStream-----把JavaBean转换为xml的工具
- 非常酷的 Javascript 简单调试工具Blackbird
- 24款非常实用的CSS3工具终极收藏
- 文件读写工具简单实现(四)--鼠标选择某行即显示某行内容
- 封装 RecyclerView, 打造为一个非常实用的开发工具 , 添加一些开发中常用的功能 , 例如下拉刷新, 分页, 自动加载 , 加载错误等等
- 数据库实用小工具之-DBUtils简单入门
- 非常实用的10款网站数据实时分析工具(强烈推荐)
- Android ui utils-简单实用的Android界面工具