java to xml_javabean 和 xml 互转

importorg.apache.commons.beanutils.BeanUtils;importorg.jdom.Document;importorg.jdom.Element;importorg.jdom.input.SAXBuilder;importorg.xml.sax.InputSource;importjavax.xml.bind.JAXBContext;importjavax.xml.bind.JAXBException;importjavax.xml.bind.Marshaller;importjava.io.StringReader;importjava.io.StringWriter;importjava.lang.reflect.Field;importjava.util.ArrayList;importjava.util.List;/*** xml与bean互转工具类*/

public classJaXmlBeanUtil {/*** 将javaBean转换为xml对象

*@paramclazz

*@parambean

*@return

*/

public staticString parseBeanToXml(Class clazz,Object bean){

StringWriter sw= null;try{

JAXBContext jaxbContext=JAXBContext.newInstance(clazz);

Marshaller jaxbMarshaller=jaxbContext.createMarshaller();

sw= newStringWriter();//该值默认为false,true则不会创建即头信息,即<?xml version="1.0" encoding="UTF-8" standalone="yes"?>

jaxbMarshaller.setProperty(Marshaller.JAXB_FRAGMENT, true);

jaxbMarshaller.marshal(bean, sw);

}catch(JAXBException e) {

e.printStackTrace();

}returnsw.toString();

}/***将xml对象转换为javaBean

*@paramclazz

*@paramxml

*@return

*/

public staticObject parseXmlToBean(Class clazz,String xml){if(xml!=null&&xml!=""){

Field[] fields=clazz.getDeclaredFields();

List fieldList = new ArrayList();for(Field fie : fields) {if (fie.isAnnotationPresent(XmlElementAnno.class)) {

fieldList.add(fie);

}

}try{

StringReader read= newStringReader(xml);

InputSource source= newInputSource(read);//创建一个新的SAXBuilder

SAXBuilder sb = newSAXBuilder();

Document doc=sb.build(source);//取的根元素

Element root =doc.getRootElement();

Object object=clazz.newInstance();if(!fieldList.isEmpty()){for(Field field : fieldList) {

Element child=root.getChild(field.getName());if(child!=null){

BeanUtils.setProperty(object, field.getName(), child.getValue());

}

}

}returnobject;

}catch(Exception e) {

e.printStackTrace();

}

}return null;

}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值