博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
JavaBean转换为XML的源码
阅读量:7297 次
发布时间:2019-06-30

本文共 5051 字,大约阅读时间需要 16 分钟。

1 package com.cmge.utils;  2   3 import java.util.Iterator;  4   5 import com.cmge.org.oa.bean.OADepartment;  6 import com.coast.foundation.utils.StringUtil;  7 import com.thoughtworks.xstream.XStream;  8 import com.thoughtworks.xstream.io.xml.XmlFriendlyReplacer;  9 import com.thoughtworks.xstream.io.xml.XppDriver; 10  11 import java.util.HashMap; 12 import java.util.LinkedList; 13 import java.util.Map;  14 import java.util.Iterator;  15  16 /**  17 * XML与JavaBean相互转换工具类  18 * File: XMLBeanUtils.java  19  21 */
22  23 public class XmlXStreamUtil {  24     private String version = ""; 25     private String xml = ""; 26     private LinkedList
addXml = new LinkedList
(); 27 public static XmlXStreamUtil Build(){ 28 return new XmlXStreamUtil(); 29 } 30 31 public XmlXStreamUtil xmlVersion(){ 32 version = "
"; 33 return this; 34 } 35 36 public XmlXStreamUtil xmlVersion(String version,String encoding){ 37 version = "
"; 38 return this; 39 } 40 41 public XmlXStreamUtil XmlAdd(String v){ 42 addXml.push(v); 43 return this; 44 } 45 46 public String toString(){ 47 StringBuffer sb = new StringBuffer(); 48 49 if(!StringUtil.isNull(version)) 50 sb.append(version); 51 for(int i = 0; i < addXml.size(); i++){ 52 String v = addXml.get(i).toString(); 53 sb.append("<"+v+">").append("\n"); 54 } 55 // 56 sb.append(xml); 57 // 58 for(int i = addXml.size()-1; i >= 0; i--){ 59 String v = addXml.get(i).toString(); 60 sb.append("\n
"); 61 } 62 return sb.toString(); 63 } 64 65 66 public XmlXStreamUtil bean2xml(Class cls,String alias,Object bean){ 67 bean2xml(cls,alias,null,bean); 68 return this; 69 } 70 71 public XmlXStreamUtil bean2xml(Class cls,String alias,String attribute,Object bean){ 72 XStream xstream = new XStream( 73 new XppDriver(new XmlFriendlyReplacer("_-", "_"))); 74 xstream.alias(alias, cls); 75 if(!StringUtil.isNull(attribute)){ 76 xstream.useAttributeFor( cls,attribute); 77 xstream.autodetectAnnotations(true); 78 } 79 xml = xstream.toXML(bean); 80 return this; 81 } 82 83 84 /** 85 * 将Bean转换为XML 86 * 87 * @param clazzMap 别名-类名映射Map 88 * @param bean 要转换为xml的bean对象 89 * @return XML字符串 90 */ 91 public XmlXStreamUtil bean2xml(Map
clazzMap, Object bean) { 92 XStream xstream = new XStream( 93 new XppDriver(new XmlFriendlyReplacer("_-", "_"))); 94 95 for (Iterator it = clazzMap.entrySet().iterator(); it.hasNext();) { 96 Map.Entry
m = (Map.Entry
) it.next(); 97 System.out.println("key="+m.getKey()+",v="+m.getValue()); 98 xstream.alias(m.getKey(), m.getValue()); 99 }100 xml = xstream.toXML(bean); 101 System.out.println("xml=\n");102 return this; 103 } 104 105 /** 106 * 将XML转换为Bean 107 * 108 * @param clazzMap 别名-类名映射Map 109 * @param xml 要转换为bean对象的xml字符串 110 * @return Java Bean对象 111 */ 112 public Object xml2Bean(Map
clazzMap, String xml) { 113 XStream xstream = new XStream(114 new XppDriver(new XmlFriendlyReplacer("_-", "_"))); 115 for (Iterator it = clazzMap.entrySet().iterator(); it.hasNext();) { 116 Map.Entry
m = (Map.Entry
) it.next(); 117 xstream.alias(m.getKey(), m.getValue()); 118 } 119 Object bean = xstream.fromXML(xml); 120 return bean; 121 } 122 123 /** 124 * 获取XStream对象 125 * 126 * @param clazzMap 别名-类名映射Map 127 * @return XStream对象 128 */ 129 public XStream getXStreamObject(Map
clazzMap) { 130 XStream xstream = new XStream(131 new XppDriver(new XmlFriendlyReplacer("_-", "_"))); 132 for (Iterator it = clazzMap.entrySet().iterator(); it.hasNext();) { 133 Map.Entry
m = (Map.Entry
) it.next(); 134 xstream.alias(m.getKey(), m.getValue()); 135 } 136 return xstream; 137 } 138 139 140 public static void main(String [] args){141 142 143 OADepartment od = new OADepartment();144 145 od.setFullname("12312");146 od.setCode("123");147 od.setOrg_code("dd");148 od.setCanceled("");149 //XmlUtil.beanToXmlStr(OADepartment.class, "1", "2");150 Map
map = new HashMap();151 map.put("org", OADepartment.class);152 String xml = XmlXStreamUtil.Build()153 154 // .bean2xml(map, od)155 .XmlAdd("root")156 .XmlAdd("orglist")157 .XmlAdd("ff")158 .xmlVersion()159 .bean2xml(OADepartment.class, "org","code", od)160 .toString();161 162 System.out.println(xml);163 164 165 System.out.println("\n\n\n\n");166 String xml2 = XmlXStreamUtil.Build()167 168 .bean2xml(OADepartment.class, "org", od)169 .toString();170 System.out.println(xml2);171 }172 }

 

转载地址:http://usfnm.baihongyu.com/

你可能感兴趣的文章
Android--序列化XML数据
查看>>
init_sequence所对应的函数
查看>>
mac系统如何关闭root账户
查看>>
Leetcode: Partition List
查看>>
谈谈基于OAuth 2.0的第三方认证 [上篇]
查看>>
使用base64编码的好处
查看>>
如何让OpenSSL得到JKS格式的keystore中的public and private key
查看>>
Windows Server 2012配置开机启动项
查看>>
Training - An Introduction to Enterprise Integration
查看>>
Android中的Service使用
查看>>
cocos2dx学习资料
查看>>
poj 2187:Beauty Contest(计算几何,求凸包,最远点对)
查看>>
PHP之is_a()函数执行代码之总结
查看>>
[SignalR]SignalR与WCF双工模式结合实现服务端数据直推浏览器端
查看>>
NSIndexPath初始化
查看>>
转ATL对象类型
查看>>
深入探讨MFC消息循环和消息泵
查看>>
教你如何利用分布式的思想处理集群的参数配置信息——spring的configurer妙用
查看>>
C++开发者都应该使用的10个C++11特性
查看>>
iOS开发UI篇—在UItableview中实现加载更多功能
查看>>