package com.shkpr.service.alambizplugin.commtools; import javax.xml.bind.JAXBContext; import javax.xml.bind.JAXBException; import javax.xml.bind.Marshaller; import javax.xml.bind.Unmarshaller; import java.io.StringReader; import java.io.StringWriter; public class XMLTool { public static String objToXml(Object obj){ return objToXml(obj, "UTF-8"); } public static String objToXml(Object obj, String encoding) { StringWriter sw = new StringWriter(); sw.append("\n"); try { JAXBContext context = JAXBContext.newInstance(obj.getClass()); Marshaller marshaller = context.createMarshaller(); marshaller.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT, Boolean.TRUE); marshaller.setProperty(Marshaller.JAXB_FRAGMENT, true);//去掉生成xml的默认报文头 //marshaller.setProperty(Marshaller.JAXB_ENCODING, encoding); marshaller.marshal(obj, sw); } catch (JAXBException e) { e.printStackTrace(); } return sw.toString(); } @SuppressWarnings("unchecked") public static Object xmlToObj(Class objClazz, String xmlStr) { Object xmlObject = null; try { JAXBContext context = JAXBContext.newInstance(objClazz); Unmarshaller unmarshaller = context.createUnmarshaller(); StringReader sr = new StringReader(xmlStr); xmlObject = unmarshaller.unmarshal(sr); } catch (JAXBException e) { e.printStackTrace(); } return xmlObject; } }