New file |
| | |
| | | package com.hx.util; |
| | | |
| | | import javax.xml.bind.JAXBContext; |
| | | import javax.xml.bind.JAXBException; |
| | | import javax.xml.bind.Marshaller; |
| | | import javax.xml.bind.Unmarshaller; |
| | | import java.io.*; |
| | | |
| | | public class XmlUtil { |
| | | |
| | | /** |
| | | * 将对象直接转换成String类型的 XML输出 |
| | | * |
| | | * @param obj |
| | | * @return |
| | | */ |
| | | public static String convertToXml(Object obj) { |
| | | // 创建输出流 |
| | | StringWriter sw = new StringWriter(); |
| | | try { |
| | | // 利用jdk中自带的转换类实现 |
| | | JAXBContext context = JAXBContext.newInstance(obj.getClass()); |
| | | |
| | | Marshaller marshaller = context.createMarshaller(); |
| | | // 格式化xml输出的格式 |
| | | marshaller.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT, |
| | | Boolean.TRUE); |
| | | marshaller.setProperty(Marshaller.JAXB_ENCODING, "UTF-8");// //编码格式 |
| | | marshaller.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT, true);// 是否格式化生成的xml串 |
| | | marshaller.setProperty(Marshaller.JAXB_FRAGMENT, false);// 是否省略xm头声明信息 |
| | | // 将对象转换成输出流形式的xml |
| | | marshaller.marshal(obj, sw); |
| | | } catch (JAXBException e) { |
| | | e.printStackTrace(); |
| | | } |
| | | return sw.toString(); |
| | | } |
| | | |
| | | /** |
| | | * 将对象根据路径转换成xml文件 |
| | | * |
| | | * @param obj |
| | | * @param path |
| | | * @return |
| | | */ |
| | | public static void convertToXml(Object obj, String path) { |
| | | try { |
| | | // 利用jdk中自带的转换类实现 |
| | | JAXBContext context = JAXBContext.newInstance(obj.getClass()); |
| | | |
| | | Marshaller marshaller = context.createMarshaller(); |
| | | // 格式化xml输出的格式 |
| | | marshaller.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT, |
| | | Boolean.TRUE); |
| | | marshaller.setProperty(Marshaller.JAXB_ENCODING, "UTF-8");// //编码格式 |
| | | marshaller.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT, true);// 是否格式化生成的xml串 |
| | | marshaller.setProperty(Marshaller.JAXB_FRAGMENT, false);// 是否省略xm头声明信息 |
| | | // 将对象转换成输出流形式的xml |
| | | // 创建输出流 |
| | | FileWriter fw = null; |
| | | try { |
| | | fw = new FileWriter(path); |
| | | } catch (IOException e) { |
| | | e.printStackTrace(); |
| | | } |
| | | marshaller.marshal(obj, fw); |
| | | } catch (JAXBException e) { |
| | | e.printStackTrace(); |
| | | } |
| | | } |
| | | |
| | | @SuppressWarnings("unchecked") |
| | | /** |
| | | * 将String类型的xml转换成对象 |
| | | */ |
| | | public static Object convertXmlStrToObject(Class clazz, String xmlStr) { |
| | | Object xmlObject = null; |
| | | try { |
| | | JAXBContext context = JAXBContext.newInstance(clazz); |
| | | // 进行将Xml转成对象的核心接口 |
| | | Unmarshaller unmarshaller = context.createUnmarshaller(); |
| | | StringReader sr = new StringReader(xmlStr); |
| | | xmlObject = unmarshaller.unmarshal(sr); |
| | | } catch (JAXBException e) { |
| | | e.printStackTrace(); |
| | | } |
| | | return xmlObject; |
| | | } |
| | | |
| | | @SuppressWarnings("unchecked") |
| | | /** |
| | | * 将file类型的xml转换成对象 |
| | | */ |
| | | public static Object convertXmlFileToObject(Class clazz, String xmlPath) { |
| | | Object xmlObject = null; |
| | | try { |
| | | JAXBContext context = JAXBContext.newInstance(clazz); |
| | | Unmarshaller unmarshaller = context.createUnmarshaller(); |
| | | FileReader fr = null; |
| | | try { |
| | | fr = new FileReader(xmlPath); |
| | | } catch (FileNotFoundException e) { |
| | | e.printStackTrace(); |
| | | } |
| | | xmlObject = unmarshaller.unmarshal(fr); |
| | | } catch (JAXBException e) { |
| | | e.printStackTrace(); |
| | | } |
| | | return xmlObject; |
| | | } |
| | | |
| | | |
| | | } |