java解析xml之xstream学习
2017-03-05 11:04
302 查看
我接触到xstream是在一次逛开源中国的时候,那时没有引起什么重视。这个星期的作业是写一个mini Struts,要读取xml配置文件,突然想到这个库,于是去了官网。
我猜这个网页应该是很久之前写的,毕竟样式在那里。快速的找到Tutorials,进入第一篇。
xstream是把xml文件的内容映射成一个类的
看上去还是挺方便的。对于习惯了Gson那个解析json的方式后,我觉得xstream的这个方式还是挺烦的。于是,继续看下一个Tutorials。
终于看到了注解的地方。我是比较喜欢用注解的,感觉上与c++的宏有类似之处。
在xstream中,类名会被映射成带包名的样子。如果我不需要带包名,就可以使用
但是,习惯了自动扫描的我,没有想到xstream的注解需要一行代码才能开启。
总的来说,xstream还是挺好用的,比起Gson解析json的来要差些。可能是xml比较复杂吧!
我猜这个网页应该是很久之前写的,毕竟样式在那里。快速的找到Tutorials,进入第一篇。
data class PhoneNumber( var code:Int, var number:String ) data class Person( var firstname:String, var lastname:String, var phone:PhoneNumber, var fax:PhoneNumber ) fun main(args: Array<String>) { val xstream = XStream() xstream.alias("person",Person::class.java) xstream.alias("phonenumber",PhoneNumber::class.java) val joe = Person("Joe","Walnes", PhoneNumber(123,"1234-456"), PhoneNumber(123,"9999-999")) val xml = xstream.toXML(joe) println(xml) val newJoe = xstream.fromXML(xml) println(newJoe) }
xstream是把xml文件的内容映射成一个类的
<person> <firstname>Joe</firstname> <lastname>Walnes</lastname> <phone> <code>123</code> <number>1234-456</number> </phone> <fax> <code>123</code> <number>9999-999</number> </fax> </person> Person(firstname=Joe, lastname=Walnes, phone=PhoneNumber(code=123, number=1234-456), fax=PhoneNumber(code=123, number=9999-999))
看上去还是挺方便的。对于习惯了Gson那个解析json的方式后,我觉得xstream的这个方式还是挺烦的。于是,继续看下一个Tutorials。
终于看到了注解的地方。我是比较喜欢用注解的,感觉上与c++的宏有类似之处。
@XStreamAlias("action") public class Action { @XStreamAsAttribute private String name; @XStreamAlias("class") @XStreamAsAttribute private String clazz; @XStreamImplicit private List<Result> results; // 省略getter 和 setter }
在xstream中,类名会被映射成带包名的样子。如果我不需要带包名,就可以使用
@XStreamAlias(别名)来映射成其他的名字。xstream默认是把成员变量作为xml的节点的,如果需要作为属性,则可以添加
@XStreamAsAttribute这个注解。最后一个是,并不是所以的集合都要显式的作为一个集合的子节点。于是,xstream提供了隐式的注解
@XStreamImplicit。
但是,习惯了自动扫描的我,没有想到xstream的注解需要一行代码才能开启。
xStream.processAnnotations(new Class[]{需要扫描的类});
总的来说,xstream还是挺好用的,比起Gson解析json的来要差些。可能是xml比较复杂吧!
相关文章推荐
- Android 用 XStream 将复杂xml解析为javabean
- XML学习04-Java中DOM方式解析XML文件
- java xstream解析xml
- java与xml学习[DOM方式解析XML文件]
- XStream解析XML学习一
- java xml解析 学习笔记(2)——SAX
- java 利用Xstream注解生成和解析xml
- Java学习笔记--xml构造与解析之Sax的使用
- Java Web知识点整理:第二章:Jquery学习、xml学习、XML的解析、Servlet学习
- Dom4j解析XML简单应用,XStream实现Java、XML转换
- java xml解析 学习笔记(4)——DOM4J
- [Java学习]使用digester 解析xml配置文件
- 【JAVA学习小结】-【用JAXP解析包解析XML方法】-【第一篇DOM解析】
- java的xml学习[使用SAX解析XML文件]
- java xml解析 学习笔记(1)——DOM
- java xml解析 学习笔记(3)——JDOM
- Java学习之路——使用DOM解析XML文档
- java的xml学习[DOM4J方式解析XML文档]
- [Java学习]使用digester 解析xml配置文件
- java学习脚印:SAX解析xml时命名空间以及参数问题(敏捷版)