0 0

如何将CXF的LoggingInInterceptor打印出来的XML转化为对应的java bean5

如何将CXF的LoggingInInterceptor打印出来的XML转化为对应的java bean,最好的是有直接的工具类能转化的。
2013年4月26日 23:32

1个答案 按时间排序 按投票排序

1 0

可以用XMLBeans,只需要几行代码就能实现xml与bean之间的转换工作。
http://xmlbeans.apache.org/

给你个完整的工具类,可以在XML文件-Bean、XML字符串-Bean之间转换:

import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
import java.io.Reader;
import com.thoughtworks.xstream.XStream;
import com.thoughtworks.xstream.io.xml.DomDriver;

/**
 * 
 * 工具类,拥有对象序列化和反序列化功能,以及Bean与XML相互转换的功能
 * 
 * @author ChenFeng
 * @version [版本号, 2009-10-28]
 */
public class SerializeUtil {
	/**
	 * 将Bean序列化到XML中
	 * 
	 * @param bean
	 * @param filePath
	 * @param typeName
	 * @param type
	 * @throws IOException
	 */
	public static void beanToXml(Object bean, String filePath, String typeName,
			Class<?> type) throws IOException {
		XStream xstream = new XStream(new DomDriver());
		xstream.alias(typeName, type);

		String xmlStr = xstream.toXML(bean);

		FileWriter writer = new FileWriter(new File(filePath));
		writer.write(xmlStr);

		if (null != writer) {
			writer.close();
		}
	}

	/**
	 * 从XML中反序列化Bean
	 * 
	 * @param xmlPath
	 * @param typeName
	 * @param type
	 * @return
	 * @throws FileNotFoundException
	 */
	public static Object xmlToBean(String xmlPath, String typeName,
			Class<?> type) throws FileNotFoundException {
		Reader reader = new FileReader(xmlPath);
		XStream xstream = new XStream(new DomDriver());
		xstream.alias(typeName, type);

		Object bean = xstream.fromXML(reader);
		return bean;
	}

	/**
	 * 将Bean转换成XML字符串
	 * 
	 * @param bean
	 * @param typeName
	 * @param type
	 * @return
	 */
	public static String beanToXmlStr(Object bean, String typeName,
			Class<?> type) {
		XStream xstream = new XStream(new DomDriver());
		xstream.alias(typeName, type);

		return xstream.toXML(bean);
	}

	/**
	 * 将XML字符串转换成Bean
	 * 
	 * @param xmlStr
	 * @param typeName
	 * @param type
	 * @return
	 */
	public static Object xmlStrToBean(String xmlStr, String typeName,
			Class<?> type) {
		XStream xstream = new XStream();
		xstream.alias(typeName, type);

		return xstream.fromXML(xmlStr);
	}
}

2013年4月27日 00:01

相关推荐

Global site tag (gtag.js) - Google Analytics