XMLTool.java 1.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445
  1. package com.shkpr.service.alambizplugin.commtools;
  2. import javax.xml.bind.JAXBContext;
  3. import javax.xml.bind.JAXBException;
  4. import javax.xml.bind.Marshaller;
  5. import javax.xml.bind.Unmarshaller;
  6. import java.io.StringReader;
  7. import java.io.StringWriter;
  8. public class XMLTool {
  9. public static String objToXml(Object obj){
  10. return objToXml(obj, "UTF-8");
  11. }
  12. public static String objToXml(Object obj, String encoding) {
  13. StringWriter sw = new StringWriter();
  14. sw.append("<?xml version=\"1.0\" encoding=\""+encoding+"\"?>\n");
  15. try {
  16. JAXBContext context = JAXBContext.newInstance(obj.getClass());
  17. Marshaller marshaller = context.createMarshaller();
  18. marshaller.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT, Boolean.TRUE);
  19. marshaller.setProperty(Marshaller.JAXB_FRAGMENT, true);//去掉生成xml的默认报文头
  20. //marshaller.setProperty(Marshaller.JAXB_ENCODING, encoding);
  21. marshaller.marshal(obj, sw);
  22. } catch (JAXBException e) {
  23. e.printStackTrace();
  24. }
  25. return sw.toString();
  26. }
  27. @SuppressWarnings("unchecked")
  28. public static Object xmlToObj(Class objClazz, String xmlStr) {
  29. Object xmlObject = null;
  30. try {
  31. JAXBContext context = JAXBContext.newInstance(objClazz);
  32. Unmarshaller unmarshaller = context.createUnmarshaller();
  33. StringReader sr = new StringReader(xmlStr);
  34. xmlObject = unmarshaller.unmarshal(sr);
  35. } catch (JAXBException e) {
  36. e.printStackTrace();
  37. }
  38. return xmlObject;
  39. }
  40. }