博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
SimpleXml项目
阅读量:6871 次
发布时间:2019-06-26

本文共 3042 字,大约阅读时间需要 10 分钟。

hot3.png

最近在做一些XML和JAVA类相互转换的过程中发现了这个开源项目 。

android开发框架中已经集成了该框架。

相关介绍的文章大家也可以参考下

一、简单的例子

代码清单1:

一个普通的JavaBean

import org.simpleframework.xml.Attribute;import org.simpleframework.xml.Element;import org.simpleframework.xml.Root;@Rootpublic class Student {	@Attribute	private int stu_id;	@Element 	private String stu_no;	@Element 	public String stu_type;	@Element 	private String stu_name;	@Element 	private String stu_class;	@Element	private String stu_year;		public String getStu_type() {		return stu_type;	}	public void setStu_type(String stu_type) {		this.stu_type = stu_type;	}	public String getStu_class() {		return stu_class;	}	public void setStu_class(String stu_class) {		this.stu_class = stu_class;	}	public String getStu_year() {		return stu_year;	}	public void setStu_year(String stu_year) {		this.stu_year = stu_year;	}	public String getStu_no() {		return stu_no;	}	public void setStu_no(String stu_no) {		this.stu_no = stu_no;	}	public int getStu_id() {		return stu_id;	}	public void setStu_id(int stu_id) {		this.stu_id = stu_id;	}	public String getStu_name() {		return stu_name;	}	public void setStu_name(String stu_name) {		this.stu_name = stu_name;	}}

代码清单2:

public class SimpleXMLTest {	/**	 * 测试创建xml文档	 */	@Test 	public void testCreateXml() {				try {			Serializer  serializer= new Persister();			Student stu = new Student();			stu.setStu_id(1);			stu.setStu_no("201205001");			stu.setStu_type("经济学");			stu.setStu_name("慕容雪");			stu.setStu_class("005班");			stu.setStu_year("2012");			File result = new File("./src/student.xml");		   serializer.write(stu, result);		} catch (Exception e) {						e.printStackTrace();		}	}}

执行后即可创建一个student.xml文档,内容如下:

201205001
经济学
慕容雪
005班
2012

是不是很简单?和那些Dom4j,Parser相比,更容易操作。

读取XML也变得异常简单

@Test	public void testReadXML(){						try {			Serializer serializer =new Persister();			File source = new File("./src/student.xml");			Student stu=serializer.read(Student.class, source);			System.out.println(stu.getStu_name());			System.out.println(stu.getStu_no());			System.out.println(stu.getStu_type());			System.out.println(stu.getStu_year());			System.out.println(stu.getStu_class());			System.out.println(stu.getStu_id());					} catch (Exception e) {			e.printStackTrace();		}			}

相比那些要获取节点,获得元素,操作各种Dom模型的传统方式,是不是清晰明了了许多。

目前我正在按照官方文档的Demo 测试对各种数据对象的支持.例子在最后共享在115网盘。

还是比较丰富的,建议大家通读一遍。

二、总体感觉:

1.上手很快

2.操作简便易懂

3.基于注解实现,零配置(现在貌似零配置很流行)

4.可以自定义模板XML(嘻嘻,和velocity不一样的)

5.支持序列化和反序列化

6.泛型支持比较好

缺点:

1.必须要依赖POJO类 

2.只能生成XML

三、使用要点

在simpleXml中这个类很重要

 Serializer接口 及其实现子类Persister

Serializer serializer=new Persister();

将POJO类写入XML

serializer.write(Object object, File file);

读取XML内容

Object object=serializer.read(Object.class, File file);

几种常用注解
//XML的根元素,一般在类上面声明@Root

//对XML属性的标识	@Attribute

//对XML中元素的标识	@Element

//对数组对象的标识@ElementArray(entry="add")
//对XML中集合属性的标识 @ElementList

当然这仅仅是我初步使用simpleXml的一些心得,下次对序列化,持久化对象,以及模板xml的创建继续深入研究。 

不足之处,还请各位大牛批评指正!

转载于:https://my.oschina.net/dlpinghailinfeng/blog/62196

你可能感兴趣的文章
Maven项目管理工具初体验
查看>>
各种排序算法的总结
查看>>
项目总结
查看>>
java面试题及答案
查看>>
我的友情链接
查看>>
枚举类型举例详解
查看>>
Linux基础系列(一)Linux安装后基本优化思路
查看>>
无线路由器设置
查看>>
Spark 是什么?
查看>>
AliRedis性能
查看>>
EIGRP的11个简要的总结
查看>>
DBActionByMap
查看>>
如何编写一个Jquery插件
查看>>
c# 建筑者模式的具体实现
查看>>
我的友情链接
查看>>
我的朗科运维第六课(1)
查看>>
Windows Server 2012 存储去重
查看>>
小米手机M1和华为Honor荣耀U8860手机深入比较
查看>>
java.lang.NoClassDefFoundError
查看>>
PHP删除目录下所有目录文件
查看>>