首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > XML SOAP >

XML字符串与对象的互相转换

2012-12-21 
XML字符串与对象的相互转换package com.metarnet.collect.senddataimport java.beans.XMLDecoderimport

XML字符串与对象的相互转换

package com.metarnet.collect.senddata;import java.beans.XMLDecoder;import java.beans.XMLEncoder;import java.io.ByteArrayInputStream;import java.io.ByteArrayOutputStream;import java.io.IOException;import java.io.UnsupportedEncodingException;import java.util.ArrayList;import java.util.List;/** * <title>使用XML文件存取可序列化的对象的类</title> <description>提供保存和读取的方法</description> *  * @author 殷晋 <copyright>清华大学汽车工程开发研究院@2005</copyright> * @author 王豪杰 * @version 1.0 2005-8-5 16:44:49 */public class ObjectToXMLUtil {/** * 把java的可序列化的对象(实现Serializable接口)转化成XML字符串,如果想一次保存多个可序列化对象请用集合进行封装 *  * @param obj *            要序列化的可序列化的对象 * @return 转化好的XML格式字符串 */public static String objectXmlEncoder(Object obj) {ByteArrayOutputStream baos = new ByteArrayOutputStream();// 创建XML文件对象输出类实例XMLEncoder encoder = new XMLEncoder(baos);// 对象序列化输出到XML文件encoder.writeObject(obj);encoder.flush();encoder.close();// 关闭序列化工具try {//关闭流baos.close();//因为我的应用需要经过web传输,所以要对特殊字符做下处理return java.net.URLEncoder.encode(baos.toString("UTF-8"), "UTF-8");} catch (UnsupportedEncodingException e) {e.printStackTrace();} catch (IOException e) {e.printStackTrace();}return null;}/** * 将objStr中的XML格式字符串转换成对象列表(必须存在要转化对象对应的类以及类所在的包,并且该类实现了Serializable接口),返回的结果经过了List封装 *  * @param objStr *            包含了对象信息XML格式的字符串 * @return 由XML字串里面保存的对象构成的List(可能是一个或者多个的序列化保存的对象) */public static List objectXmlDecoder(String objStr) {List objList = new ArrayList();ByteArrayInputStream bis = null;try {bis = new ByteArrayInputStream(objStr.getBytes("UTF-8"));} catch (UnsupportedEncodingException e1) {e1.printStackTrace();}XMLDecoder decoder = new XMLDecoder(bis);Object obj = null;try {while ((obj = decoder.readObject()) != null) {objList.add(obj);}} catch (Exception e) {}try {bis.close();} catch (IOException e) {e.printStackTrace();}decoder.close();return objList;}}

?

热点排行