dom4j xml转java对象_xml、OMElement、java对象之间转换

import java.io.ByteArrayInputStream;

import org.apache.axiom.om.OMElement;

import org.apache.axiom.om.impl.builder.StAXOMBuilder;

import org.apache.axis2.databinding.utils.BeanUtil;

import org.apache.axis2.engine.DefaultObjectSupplier;

import org.dom4j.Document;

import org.dom4j.DocumentHelper;

public class XMLUtil

{

/**

*

* @author : zKF27092

* @version: 1.0

*

时间 : 2010-12-15

*

描述 : 将XML字符串转换成对象

*

实现方法:将XML字符串转换成对象

*

Copyright 1988-2005, Huawei Tech. Co., Ltd.

* @param

* @param xml XML字符串

* @param cls 返回类型

* @return

*/

@SuppressWarnings("unchecked")

public static T xmlToBean(String xml, Class cls)

{

T object = null;

try

{

OMElement omElement = new StAXOMBuilder(new ByteArrayInputStream(

xml.getBytes("UTF-8"))).getDocumentElement();

object = (T) BeanUtil.processObject(omElement, cls, null, true,

new DefaultObjectSupplier());

}

catch (Exception e)

{

e.printStackTrace();

}

return object;

}

/**

*

* @author : zKF27092

* @version: 1.0

*

时间 : 2010-12-15

*

描述 : 将soap返回报文转换成对象

*

实现方法:将soap返回报文转换成对象

*

Copyright 1988-2005, Huawei Tech. Co., Ltd.

* @param

* @param xml XML字符串

* @param elementName 对象XML根元素的名称

* @param cls 返回类型

* @return

*/

@SuppressWarnings("unchecked")

public static T xmlToBean(String xml, String elementName, Class cls)

{

T object = null;

try

{

Document document = DocumentHelper.parseText(xml);

String beanXml = document.getRootElement().element("Body").element(

elementName).asXML();

OMElement omElement = new StAXOMBuilder(new ByteArrayInputStream(

beanXml.getBytes("UTF-8"))).getDocumentElement();

object = (T) BeanUtil.processObject(omElement, cls, null, true,

new DefaultObjectSupplier());

}

catch (Exception e)

{

e.printStackTrace();

}

return object;

}

}

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Java中,可以使用一些库来实现xmlOMElementJava对象之间的相互转换,以下是一些常见的库和示例: 1. JAXB(Java Architecture for XML Binding):JAXB可以将Java对象序列化为XML文档,也可以将XML文档反序列化为Java对象。示例代码如下: ```java // 将Java对象转换XML文档 JAXBContext jaxbContext = JAXBContext.newInstance(Student.class); Marshaller marshaller = jaxbContext.createMarshaller(); marshaller.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT, true); marshaller.marshal(student, new File("student.xml")); // 将XML文档转换Java对象 JAXBContext jaxbContext = JAXBContext.newInstance(Student.class); Unmarshaller unmarshaller = jaxbContext.createUnmarshaller(); Student student = (Student) unmarshaller.unmarshal(new File("student.xml")); ``` 2. AxiomAxiom是一个轻量级的XML对象模型,可以将OMElementJava对象相互转换。示例代码如下: ```java // 将Java对象转换OMElement OMFactory factory = OMAbstractFactory.getOMFactory(); OMElement studentElement = AxiomHelper.toOMElement(factory, student); // 将OMElement转换Java对象 Student student = AxiomHelper.fromOMElement(studentElement, Student.class); ``` 3. XStream:XStream是一个快速、简单的Java对象序列化和反序列化库,可以将Java对象序列化为XML文档,也可以将XML文档反序列化为Java对象。示例代码如下: ```java // 将Java对象转换XML文档 XStream xstream = new XStream(); xstream.alias("student", Student.class); String xml = xstream.toXML(student); // 将XML文档转换Java对象 XStream xstream = new XStream(); xstream.alias("student", Student.class); Student student = (Student) xstream.fromXML(xml); ``` 以上是一些常见的库和示例,具体使用哪个库取决于实际需求和个人喜好。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值