java实体转xml

来源:互联网 发布:天龙八部3答题器源码 编辑:程序博客网 时间:2024/05/21 14:49

用的是jdk自带的javax.xml.bind.JAXBContext将对象和xml字符串进行相互转换

封装的工具类XMLUtil

package com.ddwl.api.utils;import javax.xml.bind.JAXBContext;import javax.xml.bind.JAXBException;import javax.xml.bind.Marshaller;import java.io.StringWriter;public class XMLUtil {        public static String convertToXml(Object obj) {        StringWriter sw = new StringWriter();        try {            JAXBContext context = JAXBContext.newInstance(obj.getClass());            Marshaller marshaller = context.createMarshaller();            marshaller.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT,                    Boolean.TRUE);            marshaller.marshal(obj, sw);        } catch (JAXBException e) {            e.printStackTrace();        }        return sw.toString().replace("standalone=\"yes\"", "");    }}

java实体 

package com.ddwl.api.entity;import javax.xml.bind.annotation.XmlAccessType;import javax.xml.bind.annotation.XmlAccessorType;import javax.xml.bind.annotation.XmlRootElement;import javax.xml.bind.annotation.XmlType;@XmlAccessorType(XmlAccessType.FIELD)@XmlRootElement(name = "Message")@XmlType(propOrder = {        "Header",        "Body",})public class Account {    private Body Body;    private Header Header;    public com.ddwl.api.entity.Body getBody() {        return Body;    }    public void setBody(com.ddwl.api.entity.Body body) {        Body = body;    }    public com.ddwl.api.entity.Header getHeader() {        return Header;    }    public void setHeader(com.ddwl.api.entity.Header header) {        Header = header;    }}

main方法调用

       Body body=new Body();        body.setWaybills(waybills);        Header header=new Header();        header.setMessageInformation(messageID);        Account account =new Account();        account.setHeader(header);        account.setBody(body);        String strXml= XMLUtil.convertToXml(account);

转换效果


附:

@XmlRootElement:根节点

@XmlAccessorType(XmlAccessType.FIELD): 表示使用这个类中的 private 非静态字段作为 XML 的序列化的属性或者元素。

                                                                              这里还可以选择属性,也就是使用 set/get 方法来序列化属性或者元素。

@XmlType :指定输出顺序













原创粉丝点击