国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 開發 > Java > 正文

Java Bean與xml互相轉換的方法分析

2024-07-14 08:43:15
字體:
來源:轉載
供稿:網友

本文實例講述了Java Bean與xml互相轉換的方法。分享給大家供大家參考,具體如下:

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

<?xml version="1.0" encoding="UTF-8"?><books><book no="1"><title>java是傻逼</title><subject>java</subject><subject>xml</subject><price>10</price></book><book no="2"><title>c++程序設計</title><subject>C++</subject><subject>c</subject><price>10</price></book></books>

Books類

import java.util.ArrayList;import java.util.List;import org.nuxeo.common.xmap.annotation.XNodeList;import org.nuxeo.common.xmap.annotation.XObject;@XObject(value = "books")public class Books {  @XNodeList(value = "book", type = ArrayList.class, componentType = Book.class)  private List< Book> book;  public List< Book> getBook() {    return book;  }  public void setBook(List< Book> book) {    this.book = book;  }  public void addBook(Book b){    if(book==null){      book=new ArrayList< Book>();    }    book.add(b);  }}

Book類

import java.util.ArrayList;import java.util.List;import org.nuxeo.common.xmap.annotation.XNode;import org.nuxeo.common.xmap.annotation.XNodeList;import org.nuxeo.common.xmap.annotation.XObject;@XObjectpublic class Book {  @XNode("title")  private String  title;  @XNode("@no")  private String no;  @XNodeList(value = "subject", type = ArrayList.class, componentType = String.class)  private List< String> subjects;  @XNode("price")  private int  price;  public String getTitle() {    return title;  }  public void setTitle(String title) {    this.title = title;  }  public List< String> getSubjects() {    return subjects;  }  public void setSubjects(List< String> subjects) {    this.subjects = subjects;  }  public int getPrice() {    return price;  }  public void setPrice(int price) {    this.price = price;  }  public String getNo() {    return no;  }  public void setNo(String no) {    this.no = no;  }}

測試類:

import java.util.ArrayList;import java.util.List;import org.nuxeo.common.xmap.XMap;public class XmapTest {  public static void main(String[] args) {    try {      //聲明一組書的根節點      Books books=new Books();      //聲明一本書      Book book=new Book();      //書的類型      List< String> sj=new ArrayList< String>();      sj.add("java");      sj.add("xml");      //設置書節點的屬性      book.setPrice(10);      book.setTitle("java是傻逼");      book.setSubjects(sj);      book.setNo("1");      //將書節點添加到跟節點      books.addBook(book);     //聲明一本書      Book book2=new Book();      //書的類型      List< String> sj2=new ArrayList< String>();      sj2.add("C++");      sj2.add("c");      //設置書節點的屬性      book2.setPrice(10);      book2.setTitle("c++程序設計");      book2.setSubjects(sj2);      book2.setNo("2");      //將書節點添加到跟節點      books.addBook(book2);      XMap xmp = new XMap();      xmp.register(Books.class);      List< String> filters = new ArrayList< String>();      System.out.println(xmp.asXmlString(books, "UTF-8", filters, true));    } catch (Exception e) {      e.printStackTrace();    }  }}

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

解析xml

xmap.register(Books.class);      URL url = new File("book.xml").toURL();      InputStream in = new FileInputStream(new File("book.xml"));      Object[] result = (Object[]) xmap.loadAll(in);Books books=(Books)result[0];

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

XML和Java Bean互相轉換就此實現。

希望本文所述對大家java程序設計有所幫助。


注:相關教程知識閱讀請移步到JAVA教程頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 苍南县| 花莲市| 大英县| 华阴市| 钟山县| 什邡市| 遵义县| 宿迁市| 乡宁县| 盖州市| 富川| 化州市| 南汇区| 随州市| 肃南| 临沧市| 琼海市| 柳江县| 西畴县| 乌兰县| 惠水县| 宁乡县| 巴林左旗| 阜城县| 嘉峪关市| 错那县| 东乌珠穆沁旗| 东阳市| 藁城市| 龙州县| 合山市| 霍城县| 丽水市| 隆回县| 留坝县| 华宁县| 舞钢市| 凌源市| 林芝县| 克什克腾旗| 涿鹿县|