使用 XStream 解析xml文件

XStream可以完成xml文件和java对象之间的相互转换

 

从 http://xstream.codehaus.org/ 下载最新版本 1.3.1

 

 

 

使用时最小jar包只需要1个 , 就是xsteam.jar
--------------------------------------------------
XStream xsteam = new XStream();
new的时候是有选择性的 , 如果使用默认的话 , 需要添加jar包xpp3_min-1.1.4c.jar , 否则在将xml文件转换成对象时,会出现异常
不适用默认的话 ,不需要添加xpp3_min-1.1.4c.jar , 但是构造时需要添加参数
XStream xstream = new XStream(new DomDriver());
但是DomDriver的性能没有xpp3_min-1.1.4c.jar的性能好,我尝试1000次将一个xml文件转换为Teacher对象,使用xpp3_min-1.1.4c将近节省一半时间。
--------------------------------------------------
基本数据类型自动绑定。不用设置。
--------------------------------------------------
复合类型不使用alias绑定的话,生成的xml文件复合类型节点会有包名,看起来很不爽。 绑定的话就像这样,
xstream.alias("student" , Student.class); 绑定student节点 , 对应Student类
xstream.alias("teacher" , Teacher.class); 绑定teacher节点 , 对应Teacher类
--------------------------------------------------
xstream.alias("animal" , Animal.class , Cat.class);
xstream.alias("animal" , Cat.class);
上面的第一种和第二种的效果是相同的
--------------------------------------------------
stream.aliasAttribute(Teacher.class, "age", "teacherAge")   是绑定属性 , 对应的属性在相应xml节点头里,而不是在xml节点内部。
其中age是Teacher中的属性 , teacherAge是xml文件中显示的属性就是teacherAge='XXX' .
--------------------------------------------------
stream.aliasField("suishu" , Cat.class , "age");
生成xml文件的时候Cat类的age字段显示的是suishu , 而不是age
---------------------------------------------------
stream.addImplicitCollection(Teacher.class , "students" , "stu" , Student.class);
定义Teacher中的students集合绑定Student类 , 显示到xml文件中显示的是stu
---------------------------------------------------
我觉得上面的就够用了,毕竟只是一个工具 , 能办事就行。

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值