XML转Bean有很多方式,我使用的是xtream方式实现xml与bean的互转。

下面是简单的xml转bean

    /**
* XML转换成bean
* @param obj
* @return yuyuchen
*/
public static Object XmlTojavaBean(String xmlOut) {
Object object = null;
try {
Class<?> cl = Class.forName(xmlOut);
XStream xStreamOut = new XStream(new DomDriver());
xStreamOut.processAnnotations(cl);
object = xStreamOut.fromXML(xmlOut);
} catch (ClassNotFoundException e) {
e.printStackTrace();
} return object;
}

下面是需要特殊化处理一些别名,去掉class等

/**
* XML转换成bean
* @param obj
* @return yuyuchen
* @throws DocumentException
*/
public static IEsbServBodyResponse XmlTojavaBeanResp(Class<?> bean,String xmlIn) throws ClassNotFoundException, DocumentException {
XStream xStreamIn = new XStream(new DomDriver());
Class<?> clx = bean;
// 处理注解
xStreamIn.processAnnotations(clx);
// 标签“name”, 解析为clx类
xStreamIn.alias(clx.getSimpleName().toLowerCase(), clx);
// 设置标签class属性,为null(组装xml需要用到)
xStreamIn.aliasSystemAttribute(null, "class");
xStreamIn.addDefaultImplementation(bean, IEsbServBodyResponse.class);//此处可以转为泛型以适配所有类
// 忽略未知的元素
xStreamIn.ignoreUnknownElements();
Document document = DocumentHelper.parseText(xmlIn);
xmlIn = document.getRootElement().asXML();
return (IEsbServBodyResponse) xStreamIn.fromXML(xmlIn);
}

bean转xml:

    /**
* bean转换成XML
* @param obj
* @return yuyuchen
*/
public static String javaBeanToXml(Object obj) {
XStream xstream = new XStream(new XppDriver(new XmlFriendlyNameCoder("_-", "_")));//别名中如有横杠‘-’或下划线‘_’,xstram会自动转2个下划线,该方法是转为一个下划线
xstream.aliasSystemAttribute(null, "class");
xstream.autodetectAnnotations(true);//开启自动注解
String xmlstr = xstream.toXML(obj);
return xmlstr;
}

XML转Bean的更多相关文章

  1. [转]hibernate在eclipse的逆向工程生成hbm.xml和bean类

    原文地址:http://www.xuebuyuan.com/210489.html 以前一直用myelipse,在myeclipse做hibernate逆向工程倒是很顺手了. 可是最近改用eclips ...

  2. 使用Jaxb2进行xml与bean的转义时Date的format设置

    参考http://jackyrong.iteye.com/blog/1826699 JAXB转换JAVA OBJECT到XML的时候,对java.util.Date的转换有些要注意的地方 输出的格式为 ...

  3. Spring基础——在 Spring Config 文件中基于 XML 的 Bean 的自动装配

    一.Spring IOC 容器支持自动装配 Bean,所谓自动装配是指,不需要通过 <property> 或 <constructor-arg> 为 Bean 的属性注入值的过 ...

  4. spring学习总结——装配Bean学习三(xml装配bean)

    通过XML装配bean Spring现在有了强大的自动化配置和基于Java的配置,XML不应该再是你的第一选择了.不过,鉴于已经存在那么多基于XML的Spring配置,所以理解如何在Spring中使用 ...

  5. Springboot中使用Xstream进行XML与Bean 相互转换

    在现今的项目开发中,虽然数据的传输大部分都是用json格式来进行传输,但是xml毕竟也会有一些老的项目在进行使用,正常的老式方法是通过获取节点来进行一系列操作,个人感觉太过于复杂.繁琐.推荐一套简单的 ...

  6. XStream进行xml和bean互转

    加入pom <dependency> <groupId>com.thoughtworks.xstream</groupId> <artifactId>x ...

  7. 利用jaxb实现xml和bean的相互转换

    1.使用jar包生成xsd文件 java -jar trang.jar a.xml a.xsd xml格式 生成的xsd文件 2.使用xjc命令生成bean文件 xjc a.xsd 生成的相关bean ...

  8. 第2章—装配Bean—通过XML装配Bean

    通过XML装配Bean ​ 尽管我们在生成Bean的过程中可以用到很多方法,但我们依然需要Spring的XML配置来完善更多的需求,下面就来介绍下XML装配Bean的过程是怎样的. 3.1创建XML配 ...

  9. JavaEE互联网轻量级框架整合开发(书籍)阅读笔记(9):通过XML装配Bean

    一.通过XML装配Bean 装配简易值 装配集合 命名空间装配(暂不测试) 二.测试例子 创建一个用户类:UserBean.java package com.xfwl.spring.assem; /* ...

  10. Spring学习--xml 中 Bean 的自动装配

    Spring IOC 容器可以自动装配 Bean. 只要在 <bean> 的 autowire 属性里指定自动装配的模式. byName(根据名称自动装配):必须将目标 Bean 的名称和 ...

随机推荐

  1. 第十章:RDB持久化

    RDB 保存命令 save 命令,阻塞 Redis 服务器进程,直到保存动作完成: bgsave 命令,派生出一个子进程来完成保存动作: 载入命令 Redis 没有载入 RDB 文件的命令,载入动作在 ...

  2. Dubbo想要个网关怎么办?试试整合Spring Cloud Gateway

    一.背景 在微服务架构中 API网关 非常重要,网关作为全局流量入口并不单单是一个反向路由,更多的是把各个边缘服务(Web层)的各种共性需求抽取出来放在一个公共的"服务"(网关)中 ...

  3. day19__生成器,迭代器

    一.列表解析 l1 = ['鸡蛋%s' % i for i in range(10) if i > 5] print(l1) # ['鸡蛋6', '鸡蛋7', '鸡蛋8', '鸡蛋9'] 这种方 ...

  4. 造轮子-AgileConfig基于.NetCore的一个轻量级配置中心

    微服务确实是行业的一个趋势,我自己也在把一些项目往微服务架构迁移.玩微服务架构配置中心是一个绕不过去的东西,有很多大牌的可以选,比如spring-cloud-config,apoll,disconf等 ...

  5. 请写出在ASP.NET中常用的几种页面间传值的方法,并说出它们的特点。

    QueryString 传递一个或多个安全性要求不高或是结构简单的数值.但是对于传递数组或对象的话,就不能用这个方法了 session(viewstate) 简单,但易丢失 作用于用户个人,过量的存储 ...

  6. jQurey Select2 4.0

    https://jeesite.gitee.io/front/jquery-select2/4.0/index.htm

  7. JQuery预览图片

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...

  8. CSS3的过渡效果,使用transition实现鼠标移入/移出效果

    在css中使用伪类虽然实现了样式的改变,但由于没有过渡效果会显得很生硬.以前如果要实现过渡,就需要借助第三方的js框架来实现.现在只需要使用CSS3的过渡(transition)功能,就可以从一组样式 ...

  9. 前段人员必藏的7 个 CSS 好用的属性绝对干货

    学习CSS是构建好看网页的一种方式. 但是,在学习过程中,我们倾向于(大部分时间)限制自己,一遍又一遍地使用相同的属性. 毕竟,我们是一种习惯性的动物,我们会使用自己习惯且熟悉的东西. 因此,在这篇文 ...

  10. 常用API - 字符串

    String类 java.lang.String类代表字符串 Java 程序中的所有字符串字面值(如 "abc" )都作为此类的实例实现. 特点 字符串的内容不可变!! 因为 St ...