xml、OMElement、java对象之间转换

  1. import java.io.ByteArrayInputStream;  
  2.   
  3. import org.apache.axiom.om.OMElement;  
  4. import org.apache.axiom.om.impl.builder.StAXOMBuilder;  
  5. import org.apache.axis2.databinding.utils.BeanUtil;  
  6. import org.apache.axis2.engine.DefaultObjectSupplier;  
  7. import org.dom4j.Document;  
  8. import org.dom4j.DocumentHelper;  
  9.   
  10. public class XMLUtil  
  11. {  
  12.     /** 
  13.      *  
  14.      * @author : zKF27092 
  15.      * @version : 1.0 
  16.      * <p>时间 : 2010-12-15</p> 
  17.      * <p>描述 : 将XML字符串转换成对象</p> 
  18.      * <p>实现方法:将XML字符串转换成对象</p> 
  19.      * <p>Copyright 1988-2005, Huawei Tech. Co., Ltd.</p> 
  20.      * @param <T> 
  21.      * @param xml XML字符串 
  22.      * @param cls 返回类型 
  23.      * @return 
  24.      */  
  25.     @SuppressWarnings("unchecked")  
  26.     public static <T> T xmlToBean(String xml, Class<T> cls)  
  27.     {  
  28.         T object = null;  
  29.         try  
  30.         {  
  31.             OMElement omElement = new StAXOMBuilder(new ByteArrayInputStream(  
  32.                     xml.getBytes("UTF-8"))).getDocumentElement();  
  33.             object = (T) BeanUtil.processObject(omElement, cls, nulltrue,  
  34.                     new DefaultObjectSupplier());  
  35.         }  
  36.         catch (Exception e)  
  37.         {  
  38.             e.printStackTrace();  
  39.         }  
  40.         return object;  
  41.     }  
  42.       
  43.     /** 
  44.      *  
  45.      * @author : zKF27092 
  46.      * @version: 1.0 
  47.      * <p>时间 : 2010-12-15</p> 
  48.      * <p>描述 : 将soap返回报文转换成对象</p> 
  49.      * <p>实现方法:将soap返回报文转换成对象</p> 
  50.      * <p>Copyright 1988-2005, Huawei Tech. Co., Ltd.</p> 
  51.      * @param <T> 
  52.      * @param xml XML字符串 
  53.      * @param elementName 对象XML根元素的名称 
  54.      * @param cls 返回类型 
  55.      * @return 
  56.      */  
  57.     @SuppressWarnings("unchecked")  
  58.     public static <T> T xmlToBean(String xml, String elementName, Class<T> cls)  
  59.     {  
  60.         T object = null;  
  61.         try  
  62.         {  
  63.             Document document = DocumentHelper.parseText(xml);  
  64.             String beanXml = document.getRootElement().element("Body").element(  
  65.                     elementName).asXML();  
  66.             OMElement omElement = new StAXOMBuilder(new ByteArrayInputStream(  
  67.                     beanXml.getBytes("UTF-8"))).getDocumentElement();  
  68.               
  69.             object = (T) BeanUtil.processObject(omElement, cls, nulltrue,  
  70.                     new DefaultObjectSupplier());  
  71.         }  
  72.         catch (Exception e)  
  73.         {  
  74.             e.printStackTrace();  
  75.         }  
  76.         return object;  
  77.     }  
  78. }   

转载于:https://my.oschina.net/phoebus789/blog/536019

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值