成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

XML和Java Bean的互相轉換攻略

開發(fā) 后端
本文介紹XML和Java Bean互相轉換是如何實現(xiàn)的。

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

最近項目中用到了xml和java bean的轉換

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

我們能不能直接從xml轉化到java bean呢,或者直接成java bean轉化到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++程序設計< /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.             //設置書節(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.             //設置書節(jié)點的屬性    
  35.             book2.setPrice(10);    
  36.             book2.setTitle("c++程序設計");    
  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的內容

解析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é)點的內容都一樣,固定)

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

【編輯推薦】

  1. JSP和BEAN詳細剖析
  2. Servlet和JSP經(jīng)驗總結
  3. 帶參數(shù)方法調用JSP EL表達式
  4. 詳解JSP開發(fā)環(huán)境的配置
  5. 全面介紹JSP標準標記庫JSTL
責任編輯:yangsai 來源: JavaEye博客
相關推薦

2020-10-22 08:01:52

XMLJSON轉換

2009-06-23 14:22:00

DOM文檔XML文件Java

2009-08-13 09:33:07

JavaBean到XM

2012-06-29 13:45:53

XML

2021-06-18 07:35:46

Java接口應用

2013-06-08 11:13:00

Android開發(fā)XML解析

2019-12-16 10:13:16

Python字符串數(shù)據(jù)

2009-06-15 15:10:02

Java數(shù)據(jù)轉換JSON

2009-06-18 11:15:53

裝配beanxml配置Spring

2009-09-08 16:55:01

Linq實現(xiàn)XML轉換

2011-11-29 13:53:34

ADO.NET

2009-04-21 13:14:33

SilverlightWPF擴展

2021-06-10 06:57:39

Spring.xmlBean對象

2009-09-02 10:26:23

JSP和BEAN

2011-06-15 12:36:58

JSPBEAN

2015-11-24 09:53:22

AngularJSXMLJSON

2009-07-03 14:40:33

2009-07-01 14:09:24

Servlet和BeaJSP

2010-01-07 15:41:58

XML轉換為JSON

2022-04-11 08:25:37

XMLSQL語句Mybatis
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 国产91丝袜在线18 | 久久av一区二区三区 | 亚洲免费精品 | 国内精品免费久久久久软件老师 | 日韩精品一区二区三区在线观看 | 成年人免费网站 | 亚洲国产一区在线 | 91一区二区三区 | 久夜精品 | 免费黄色片在线观看 | 国产精品欧美一区二区三区 | 欧美八区| 欧美日韩国产三级 | 精品96久久久久久中文字幕无 | 国产精品毛片在线 | 精精国产视频 | 日韩视频福利 | caoporn免费在线视频 | 日韩免费视频一区二区 | 日本又色又爽又黄又高潮 | 97免费视频在线观看 | 久久精品二区 | 国产精品爱久久久久久久 | 亚洲欧美另类在线观看 | 日韩精品在线看 | 欧美一区二区三区在线观看 | 色综合久久天天综合网 | 国产特级毛片aaaaaa | 日本精品一区二区三区视频 | 尤物在线 | 欧美日韩精品免费 | 国产精品综合久久 | 国产乱码久久久 | 伊人久久麻豆 | 91五月天 | 午夜视频网站 | 综合网伊人| 日本免费小视频 | 国产精品久久久久久久久久软件 | 一区在线播放 | 色在线看 |