importjava.io.IOException;importjava.io.StringReader;importjava.io.StringWriter;importjavax.xml.bind.JAXBContext;importjavax.xml.bind.JAXBException;importjavax.xml.bind.Marshaller;importjavax.xml.bind.Unmarshaller;importcom.alipayeco.medicalinscore.common.Global;public classJaxbUtil {//工具类/*** java对象转换为xml文件
*@paramxmlPath xml文件路径
*@paramload java对象.Class
*@returnxml文件的String
*@throwsJAXBException*/
public static String beanToXml(Object obj, Class> load) throwsJAXBException {
JAXBContext context=JAXBContext.newInstance(load);
Marshaller marshaller=context.createMarshaller();
marshaller.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT,false);
marshaller.setProperty(Marshaller.JAXB_ENCODING, Global.ENCODING);
StringWriter writer= newStringWriter();
marshaller.marshal(obj, writer);returnwriter.toString();
}/*** xml文件配置转换为对象
*@paramxmlPath xml文件路径
*@paramload java对象.Class
*@returnjava对象
*@throwsJAXBException
*@throwsIOException*/@SuppressWarnings("unchecked")public static T xmlToBean(String xmlPath, Class load) throwsJAXBException, IOException {
JAXBContext context=JAXBContext.newInstance(load);
Unmarshaller unmarshaller=context.createUnmarshaller();return (T) unmarshaller.unmarshal(newStringReader(xmlPath));
}/*** JavaBean转换成xml
* 默认编码UTF-8
*@paramobj
*@paramwriter
*@return
*/
public staticString convertToXml(Object obj) {//return convertToXml(obj, "UTF-8");
return convertToXml(obj, "UTF-8");
}/*** JavaBean转换成xml
*@paramobj
*@paramencoding
*@return
*/
public staticString convertToXml(Object obj, String encoding) {
String result= null;try{
JAXBContext context=JAXBContext.newInstance(obj.getClass());
Marshaller marshaller=context.createMarshaller();
marshaller.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT,true);
marshaller.setProperty(Marshaller.JAXB_ENCODING, encoding);
StringWriter writer= newStringWriter();
marshaller.marshal(obj, writer);
result=writer.toString();
}catch(Exception e) {
e.printStackTrace();
}returnresult;
}/*** JavaBean转换成xml去除xml声明部分
*@paramobj
*@paramencoding
*@return
*/
public staticString convertToXmlIgnoreXmlHead(Object obj, String encoding) {
String result= null;try{
JAXBContext context=JAXBContext.newInstance(obj.getClass());
Marshaller marshaller=context.createMarshaller();
marshaller.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT,true);
marshaller.setProperty(Marshaller.JAXB_ENCODING, encoding);
marshaller.setProperty(Marshaller.JAXB_FRAGMENT,true);
StringWriter writer= newStringWriter();
marshaller.marshal(obj, writer);
result=writer.toString();
}catch(Exception e) {
e.printStackTrace();
}returnresult;
}/*** xml转换成JavaBean
*@paramxml
*@paramc
*@return
*/@SuppressWarnings("unchecked")public static T converyToJavaBean(String xml, Classc) {
T t= null;try{
JAXBContext context=JAXBContext.newInstance(c);
Unmarshaller unmarshaller=context.createUnmarshaller();
t= (T) unmarshaller.unmarshal(newStringReader(xml));
}catch(Exception e) {
e.printStackTrace();
}returnt;
}
}