日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) >

java bean与xml转换_Java Bean与xml互相转换的方法分析

發(fā)布時(shí)間:2025/5/22 28 豆豆
生活随笔 收集整理的這篇文章主要介紹了 java bean与xml转换_Java Bean与xml互相转换的方法分析 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

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

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

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

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

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

答案是OK的

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

寫個(gè)小例子

XML

java是傻逼

java

xml

10

c++程序設(shè)計(jì)

C++

c

10

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;

}

}

測(cè)試類:

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è)計(jì)");

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)行上面這個(gè)類就可以生成開頭所看見的那個(gè)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很整齊,每個(gè)節(jié)點(diǎn)的內(nèi)容都一樣,固定)

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

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

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

總結(jié)

以上是生活随笔為你收集整理的java bean与xml转换_Java Bean与xml互相转换的方法分析的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。