一区二区三区日韩精品-日韩经典一区二区三区-五月激情综合丁香婷婷-欧美精品中文字幕专区

分享

jaxb解析xml為對象例子

 青_春 2015-12-16
通過jaxb方式把xml文件映射成bean對象。 

1、新建java工程或者web工程都可以。 
2、通過精簡必須導入jar包 
         activation.jar 
        jaxb-api-2.0.jar 
        jaxb-impl-2.0.1.jar 
        jsr173_api-1.0.jar 
3、 新建xml文件 
    <?xml version="1.0" encoding="UTF-8"?> 
    <root> 

<template 
   start="true" 
   ip="127.0.0.1" 
   port="3344" 
   server="server" 
/> 
<template ... ... /> 
    </root> 

4、新建bean對象,xml的映射文件。 
Vo.java 如下 
  
Java代碼  收藏代碼
  1. import javax.xml.bind.annotation.XmlAccessType;  
  2. import javax.xml.bind.annotation.XmlAccessorType;  
  3. import javax.xml.bind.annotation.XmlAttribute;  
  4. import javax.xml.bind.annotation.XmlRootElement;  
  5. import javax.xml.bind.annotation.XmlType;  
  6.   
  7. @XmlAccessorType(XmlAccessType.FIELD)  
  8. @XmlType(name = "", propOrder = {  
  9. })  
  10. @XmlRootElement(name = "[color=red]template[/color]")  
  11. public class Vo {  
  12.   
  13.     @XmlAttribute  
  14.     private String start;  
  15.     @XmlAttribute  
  16.     private String ip;  
  17.     @XmlAttribute  
  18.     private String port;  
  19.     @XmlAttribute  
  20.     private String server;  
  21.       
  22.       
  23.     public String getStart() {  
  24.         return start;  
  25.     }  
  26.     public void setStart(String start) {  
  27.         this.start = start;  
  28.     }  
  29.     public String getIp() {  
  30.         return ip;  
  31.     }  
  32.     public void setIp(String ip) {  
  33.         this.ip = ip;  
  34.     }  
  35.     public String getPort() {  
  36.         return port;  
  37.     }  
  38.     public void setPort(String port) {  
  39.         this.port = port;  
  40.     }  
  41.     public String getServer() {  
  42.         return server;  
  43.     }  
  44.     public void setServer(String server) {  
  45.         this.server = server;  
  46.     }  
  47. }  
  48.      

該文件對應xml文件中 循環(huán)節(jié)點 template 元素 

Root.java 文件如下 
Java代碼  收藏代碼
  1. import java.util.ArrayList;  
  2. import java.util.List;  
  3.   
  4. import javax.xml.bind.annotation.XmlAccessType;  
  5. import javax.xml.bind.annotation.XmlAccessorType;  
  6. import javax.xml.bind.annotation.XmlRootElement;  
  7. import javax.xml.bind.annotation.XmlType;  
  8.   
  9. @XmlAccessorType(XmlAccessType.FIELD)  
  10. @XmlType(name = "", propOrder = {  
  11. })  
  12. @XmlRootElement(name = "[color=blue]root[/color]")  
  13. public class Root {  
  14.       
  15.     protected List<Vo> [color=red]template[/color];  
  16.       
  17.     public List<Vo> getTemplateList() {  
  18.         if (template == null) {  
  19.             template = new ArrayList<Vo>();  
  20.         }  
  21.         return this.template;  
  22.     }  
  23. }  


注意bean對象與xml映射的關系。 

5、 解析xml為bean類 
Java代碼  收藏代碼
  1. public static void gernateConfig() throws Exception{  
  2.         StringBuffer buffer  = null;  
  3.         JAXBContext jaxbContext;  
  4.         try {  
  5.                            //讀入xml文件流  
  6.                            InputStream is = Excecute.class.getResourceAsStream(“/conf/config.xml”);  
  7.             BufferedReader in = new BufferedReader(new InputStreamReader(is));  
  8.             buffer = new StringBuffer();  
  9.             String line = "";  
  10.             while ((line = in.readLine()) != null) {  
  11.                 buffer.append(line);  
  12.             }  
  13.               
  14.             //加載映射bean類  
  15.             jaxbContext = JAXBContext.newInstance(Root.class);  
  16.                            //創(chuàng)建解析  
  17.             Unmarshaller um = jaxbContext.createUnmarshaller();  
  18.             StreamSource streamSource = new StreamSource(new StringReader(buffer.toString()));  
  19.             Root root = (Root) um.unmarshal(streamSource);   
  20.         } catch (Exception e) {  
  21.             e.printStackTrace();  
  22.             throw new Exception(e.getMessage());  
  23.         }  
  24.     }  


6、 把bean對象生成xml字符串方法 
Java代碼  收藏代碼
  1. public static String gernateConfigXml(Root root) throws Exception {  
  2.         if (root != null) {  
  3.             try {  
  4.                 JAXBContext context = JAXBContext.newInstance(Root.class);  
  5.                 Marshaller m = context.createMarshaller();  
  6.                 m.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT, true);  
  7.                 Writer writer = new StringWriter();  
  8.                 m.marshal(root, writer);  
  9.                 try {  
  10.                     String xml = writer.toString();  
  11.                     writer.flush();  
  12.                     writer.close();  
  13.                     return xml;  
  14.                 } catch (IOException e) {  
  15.                     return "";  
  16.                 }  
  17.             } catch (Exception e) {  
  18.                 throw new Exception("失敗!");  
  19.             }  
  20.         } else {  
  21.             return null;  
  22.         }  
  23.     }  

    本站是提供個人知識管理的網絡存儲空間,所有內容均由用戶發(fā)布,不代表本站觀點。請注意甄別內容中的聯(lián)系方式、誘導購買等信息,謹防詐騙。如發(fā)現(xiàn)有害或侵權內容,請點擊一鍵舉報。
    轉藏 分享 獻花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多

    欧美高潮喷吹一区二区| 成年午夜在线免费视频| 日本特黄特色大片免费观看| 中文字幕日韩无套内射| 中文字幕人妻日本一区二区| 色偷偷亚洲女人天堂观看| 日本一本不卡免费视频| 粉嫩一区二区三区粉嫩视频| 欧美日韩校园春色激情偷拍| 国产精品日韩欧美第一页| 亚洲内射人妻一区二区| 色哟哟精品一区二区三区| 午夜传媒视频免费在线观看| 国产一区二区三区草莓av| 精品一区二区三区乱码中文| 免费在线成人激情视频| 午夜视频成人在线观看| 日韩人妻中文字幕精品| 日韩18一区二区三区| 国产三级视频不卡在线观看| 日韩女优精品一区二区三区| 蜜桃传媒视频麻豆第一区| 午夜福利视频日本一区| 丰满少妇被粗大猛烈进出视频| 一区二区三区欧美高清| 国产香蕉国产精品偷在线观看| 老富婆找帅哥按摩抠逼视频| 亚洲欧洲一区二区中文字幕| 欧美大黄片在线免费观看| 操白丝女孩在线观看免费高清| 99少妇偷拍视频在线| 高清欧美大片免费在线观看| av一区二区三区天堂| 日韩女优视频国产一区| 欧美午夜一级艳片免费看| 国产水滴盗摄一区二区| 亚洲在线观看福利视频| 国产亚洲视频香蕉一区| 国产欧美性成人精品午夜| 日韩一区二区三区观看| 91精品国产av一区二区|