日韩无码专区无码一级三级片|91人人爱网站中日韩无码电影|厨房大战丰满熟妇|AV高清无码在线免费观看|另类AV日韩少妇熟女|中文日本大黄一级黄色片|色情在线视频免费|亚洲成人特黄a片|黄片wwwav色图欧美|欧亚乱色一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時間:8:30-17:00
你可能遇到了下面的問題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
XML和JavaBean的互相轉(zhuǎn)換攻略

XML和Java Bean互相轉(zhuǎn)換是一個很有用的功能,因為兩者有著前后合作的關(guān)系,但解析的過程比較痛苦。下面介紹如何進行XML和Java Bean的互相轉(zhuǎn)換。

10年積累的成都做網(wǎng)站、成都網(wǎng)站制作、成都外貿(mào)網(wǎng)站建設(shè)經(jīng)驗,可以快速應(yīng)對客戶對網(wǎng)站的新想法和需求。提供各種問題對應(yīng)的解決方案。讓選擇我們的客戶得到更好、更有力的網(wǎng)絡(luò)服務(wù)。我雖然不認識你,你也不認識我。但先網(wǎng)站制作后付款的網(wǎng)站建設(shè)流程,更有天河免費網(wǎng)站建設(shè)讓你可以放心的選擇與我們合作。

最近項目中用到了xml和java bean的轉(zhuǎn)換

用到xml的時候我們需要遍歷解析。。。然后將解析的值放入聲明好的java bean,過程很痛苦,結(jié)果很美好

我們能不能直接從xml轉(zhuǎn)化到j(luò)ava bean呢,或者直接成java bean轉(zhuǎn)化到xml呢?

答案是OK的

使用jar包:org.nuxeo.common.xmap

寫個小例子

XML

 
 
 
  1. < ?xml version="1.0" encoding="UTF-8"?>    
  2. < books>    
  3. < book no="1">    
  4. < title>java是傻逼< /title>    
  5. < subject>java< /subject>    
  6. < subject>xml< /subject>    
  7. < price>10< /price>    
  8. < /book>    
  9. < book no="2">    
  10. < title>c++程序設(shè)計< /title>    
  11. < subject>C++< /subject>    
  12. < subject>c< /subject>    
  13. < price>10< /price>    
  14. < /book>    
  15. < /books>   

Books類

 
 
 
  1. import java.util.ArrayList;    
  2. import java.util.List;    
  3.     
  4. import org.nuxeo.common.xmap.annotation.XNodeList;    
  5. import org.nuxeo.common.xmap.annotation.XObject;    
  6.     
  7. @XObject(value = "books")    
  8. public class Books {        
  9.     @XNodeList(value = "book", type = ArrayList.class, componentType = Book.class)    
  10.     private List< Book> book;    
  11.         
  12.     public List< Book> getBook() {    
  13.         return book;    
  14.     }    
  15.     
  16.     public void setBook(List< Book> book) {    
  17.         this.book = book;    
  18.     }    
  19.         
  20.     public void addBook(Book b){    
  21.         if(book==null){    
  22.             book=new ArrayList< Book>();    
  23.         }    
  24.         book.add(b);    
  25.     }    
  26. }    
  27.  

Book類

 
 
 
  1. import java.util.ArrayList;    
  2. import java.util.List;    
  3.     
  4. import org.nuxeo.common.xmap.annotation.XNode;    
  5. import org.nuxeo.common.xmap.annotation.XNodeList;    
  6. import org.nuxeo.common.xmap.annotation.XObject;    
  7.     
  8.     
  9. @XObject    
  10. public class Book {    
  11.     @XNode("title")    
  12.     private String   title;    
  13.     
  14.     @XNode("@no")    
  15.     private String no;    
  16.         
  17.     @XNodeList(value = "subject", type = ArrayList.class, componentType = String.class)    
  18.     private List< String> subjects;    
  19.         
  20.     @XNode("price")    
  21.     private int   price;    
  22.     
  23.     public String getTitle() {    
  24.         return title;    
  25.     }    
  26.     
  27.     public void setTitle(String title) {    
  28.         this.title = title;    
  29.     }    
  30.     
  31.     public List< String> getSubjects() {    
  32.         return subjects;    
  33.     }    
  34.     
  35.     public void setSubjects(List< String> subjects) {    
  36.         this.subjects = subjects;    
  37.     }    
  38.     
  39.     public int getPrice() {    
  40.         return price;    
  41.     }    
  42.     
  43.     public void setPrice(int price) {    
  44.         this.price = price;    
  45.     }    
  46.     
  47.     public String getNo() {    
  48.         return no;    
  49.     }    
  50.     
  51.     public void setNo(String no) {    
  52.         this.no = no;    
  53.     }    
  54. }    
  55.  

測試類:

 
 
 
  1. import java.util.ArrayList;    
  2. import java.util.List;    
  3.     
  4. import org.nuxeo.common.xmap.XMap;    
  5.     
  6.     
  7. public class XmapTest {    
  8.     public static void main(String[] args) {    
  9.         try {    
  10.             //聲明一組書的根節(jié)點    
  11.             Books books=new Books();    
  12.                 
  13.             //聲明一本書    
  14.             Book book=new Book();    
  15.             //書的類型    
  16.             List< String> sj=new ArrayList< String>();    
  17.             sj.add("java");    
  18.             sj.add("xml");    
  19.             //設(shè)置書節(jié)點的屬性    
  20.             book.setPrice(10);    
  21.             book.setTitle("java是傻逼");    
  22.             book.setSubjects(sj);    
  23.             book.setNo("1");    
  24.                 
  25.             //將書節(jié)點添加到跟節(jié)點    
  26.             books.addBook(book);    
  27.                 
  28.           //聲明一本書    
  29.             Book book2=new Book();    
  30.             //書的類型    
  31.             List< String> sj2=new ArrayList< String>();    
  32.             sj2.add("C++");    
  33.             sj2.add("c");    
  34.             //設(shè)置書節(jié)點的屬性    
  35.             book2.setPrice(10);    
  36.             book2.setTitle("c++程序設(shè)計");    
  37.             book2.setSubjects(sj2);    
  38.             book2.setNo("2");    
  39.                 
  40.             //將書節(jié)點添加到跟節(jié)點    
  41.             books.addBook(book2);    
  42.                 
  43.             XMap xmp = new XMap();    
  44.             xmp.register(Books.class);    
  45.     
  46.             List< String> filters = new ArrayList< String>();    
  47.     
  48.             System.out.println(xmp.asXmlString(books, "UTF-8", filters, true));    
  49.         } catch (Exception e) {    
  50.             e.printStackTrace();    
  51.         }    
  52.     }    
  53. }    
  54.  

運行上面這個類就可以生成開頭所看見的那個XML的內(nèi)容

解析xml

 
 
 
  1. xmap.register(Books.class);    
  2.             URL url = new File("book.xml").toURL();    
  3.             InputStream in = new FileInputStream(new File("book.xml"));    
  4.             Object[] result = (Object[]) xmap.loadAll(in);    
  5.     
  6. Books books=(Books)result[0];    
  7.  

數(shù)據(jù)就完全autowire by name進入到了bean,某些情況下很好用(xml很整齊,每個節(jié)點的內(nèi)容都一樣,固定)

XML和Java Bean互相轉(zhuǎn)換就此實現(xiàn)。


當前標題:XML和JavaBean的互相轉(zhuǎn)換攻略
網(wǎng)站地址:http://m.5511xx.com/article/djhdhpi.html