最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Java Bean與xml互相轉(zhuǎn)換的方法分析

 更新時間:2018年12月18日 12:06:24   作者:天涯海角路  
這篇文章主要介紹了Java Bean與xml互相轉(zhuǎn)換的方法,結(jié)合實(shí)例形式分析了java bean與xml轉(zhuǎn)換的原理與相關(guān)操作技巧,需要的朋友可以參考下

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

XML和Java Bean互相轉(zhuǎn)換是一個很有用的功能,因?yàn)閮烧哂兄昂蠛献鞯年P(guān)系,但解析的過程比較痛苦。下面介紹如何進(jìn)行XML和Java Bean的互相轉(zhuǎn)換。

最近項(xiàng)目中用到了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

<?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++程序設(shè)計</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;
@XObject
public 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 {
      //聲明一組書的根節(jié)點(diǎn)
      Books books=new Books();
      //聲明一本書
      Book book=new Book();
      //書的類型
      List< String> sj=new ArrayList< String>();
      sj.add("java");
      sj.add("xml");
      //設(shè)置書節(jié)點(diǎn)的屬性
      book.setPrice(10);
      book.setTitle("java是傻逼");
      book.setSubjects(sj);
      book.setNo("1");
      //將書節(jié)點(diǎn)添加到跟節(jié)點(diǎn)
      books.addBook(book);
     //聲明一本書
      Book book2=new Book();
      //書的類型
      List< String> sj2=new ArrayList< String>();
      sj2.add("C++");
      sj2.add("c");
      //設(shè)置書節(jié)點(diǎn)的屬性
      book2.setPrice(10);
      book2.setTitle("c++程序設(shè)計");
      book2.setSubjects(sj2);
      book2.setNo("2");
      //將書節(jié)點(diǎn)添加到跟節(jié)點(diǎn)
      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();
    }
  }
}

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

解析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];

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

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

PS:這里再為大家推薦幾款相關(guān)在線工具供大家參考:

在線JSON轉(zhuǎn)Java Bean代碼工具:
http://tools.jb51.net/code/json2javabean

在線XML/JSON互相轉(zhuǎn)換工具:
http://tools.jb51.net/code/xmljson

XML在線壓縮/格式化工具:
http://tools.jb51.net/code/xml_format_compress

更多關(guān)于java算法相關(guān)內(nèi)容感興趣的讀者可查看本站專題:《Java數(shù)據(jù)結(jié)構(gòu)與算法教程》、《Java操作DOM節(jié)點(diǎn)技巧總結(jié)》、《Java文件與目錄操作技巧匯總》和《Java緩存操作技巧匯總

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

相關(guān)文章

最新評論

阿图什市| 荔浦县| 临城县| 延庆县| 武强县| 特克斯县| 军事| 公安县| 成都市| 涞源县| 益阳市| 庆阳市| 峨眉山市| 伊金霍洛旗| 斗六市| 嘉义市| 日喀则市| 吴旗县| 丹棱县| 沾化县| 衢州市| 封开县| 阜城县| 灵石县| 康乐县| 义乌市| 永年县| 绥棱县| 和顺县| 丹东市| 平昌县| 泰顺县| 固原市| 台前县| 海原县| 南丰县| 务川| 漾濞| 阳信县| 石河子市| 株洲县|