Java 使用 XStream 操作 XML
XStream 简介
XML 是一种严格的文本格式,我想大家都是知道的。XStream 的作用主要是操作 XML,当然JDK也有自己的方法来实现,但是今天我们用XStream来操作XML。
XStream 基本使用
XStream 可以将 Object 序列化成 XML。如果有包结构,那么序列化成xml的时候节点会带上包名。
Student.java
1 | package com.czj.student; |
我们希望生成的xml的文件为:
1 | <Student> |
如果直接使用XStream来生成xml如下:
Main.java
1 | package com.czj.student; |
运行后生成:xml
1 | <com.czj.student.Student> |
可以看到如果是带有包名的Object(Studen.java),那么生成的xml节点就会带上包名。这明显就不是我们所需要的XML。那么如何改变了?可以用到Annotation注解的形式:
1 |
|
给所要改名的节点的类上加上@XStreamAlias("student")注解,貌似可以了?其实加上了注解之后,那么XStream怎么知道要取解析注解了?所以我们要指明一点:
1 | xStream.processAnnotations(Student.class); |
所以原来的代码就变成:Student.java
1 | package com.czj.student; |
而Main.java:
1 | package com.czj.student; |
就能生成我们想要的xml结果了:
1 | <student> |
XStream 操作命名空间
seo中通常要生成站点sitemap.xml.我们尝试去写一个对应的java类:Sitemap.java
1 | package com.czj.sitemap; |
可以看到命名空间
1 |
|
XStream 常用注解介绍
@XStreamAlias(value="urlset"): 生成的节点别名
@XStreamImplicit : 忽略节点生成,常用于List a ,a也是一个节点,而实际上a并不需要。
@XStreamAsAttribute @XStreamAlias("xmlns") : 属性,属性别名
千万要记得如果采用注解形式,一定要将xStream.processAnnotations(Student.class);打开,否则无法运用注解