用Xstream 来解析xml文本
文本内部还包含着既有属性又有值的这种情况 这边进行了toXml 和 toObj 的2种操作 目前我这边用的是注解来完成这一转换步骤
工具类
package com.xxx.common.util;
import com.xxx.xxx.base.vo.Data;
import com.xxx.xxx.base.vo.Field;
import com.xxx.xxx.base.vo.Service;
import com.thoughtworks.xstream.XStream;
import com.thoughtworks.xstream.io.xml.DomDriver;
/**
* XStream工具类
* @author Risk
* 2018年7月17日
*/
public class XStreamUtil {
private static XStream xStream;
static{
xStream = new XStream(new DomDriver());
xStream.processAnnotations(Service.class); //类加载 必须
xStream.processAnnotations(Data.class);
xStream.processAnnotations(Field.class);
}
//xml转java对象
public static Object xmlToBean(String xml){
return xStream.fromXML(xml);
}
//java对象转xml
public static String beanToXml(Object obj){
return "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n" + xStream.toXML(obj);
}
}
pojo 简单的挑几个类来写
package com.xxx.xxx.base.vo;
import com.thoughtworks.xstream.annotations.XStreamAlias;
/**
* @author 作者 Risk;
* @version 创建时间:2018年7月17日 上午10:41:26
* 类说明: xml解析基础类
*/
@XStreamAlias("service") //该类是节点
public class Service {
@XStreamAlias("sys-header") //该字段换成指定字段 节点
private SysHeader sysheader