XML字符串和 java對象項目轉換


這是之前寫,僅供參考(如果缺少jar包可以私信我,CSDN現在下載的東西太費了,動不動就要積分,開源精神所剩無幾了,也沒辦法都需要吃飯,可以理解)

 1 import javax.xml.bind.JAXBContext;
 2 import javax.xml.bind.JAXBException;
 3 import javax.xml.bind.Marshaller;
 4 import javax.xml.bind.Unmarshaller;
 5 
 6 public class XMLUtils{
 7 
 8         /**
 9      * add by scy 通過JAXB生成XML字符串
10      * @param clazz
11      * @return
12      */
13     public static String obj2XML(Object obj){
14         StringWriter sw = new StringWriter(); 
15         String xml = null;
16         try {  
17             // 利用jdk中自帶的轉換類實現  
18             JAXBContext context = JAXBContext.newInstance(obj.getClass());  
19   
20             Marshaller marshaller = context.createMarshaller();  
21             // 格式化xml輸出的格式  
22             marshaller.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT,Boolean.TRUE); 
23             marshaller.setProperty(Marshaller.JAXB_FRAGMENT, Boolean.FALSE);
24             marshaller.setProperty(Marshaller.JAXB_ENCODING, "gb2312");
25             // 將對象轉換成輸出流形式的xml  
26             marshaller.marshal(obj, sw);  
27             xml = sw.toString();
28         } catch (JAXBException e) {  
29             e.printStackTrace(); 
30         }
31         return xml;
32     }
33     
34     /**
35      * add by scy 通過JAXB將XML轉化為Object
36      * @param xml
37      * @param clazz
38      * @return
39      */
40     public static <T> Object xml2Obj(String xml,Class<T> clazz){
41         Object obj = null;
42         try {
43             JAXBContext jaxbContext = JAXBContext.newInstance(clazz);
44             Unmarshaller um = jaxbContext.createUnmarshaller();
45             StringReader sr = new StringReader(xml); 
46             obj = clazz.newInstance();
47             obj = um.unmarshal(sr); 
48         } catch (JAXBException e) {
49             // TODO Auto-generated catch block
50             e.printStackTrace();
51         } catch (InstantiationException e) {
52             // TODO Auto-generated catch block
53             e.printStackTrace();
54         } catch (IllegalAccessException e) {
55             // TODO Auto-generated catch block
56             e.printStackTrace();
57         }
58         return obj; 
59     }    
60 }


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM