利⽤JAXBContext将xml⽂件转换成ListT 我们在将xml⽂件封装成List<T>形式的⽂件时,通常使⽤dom4j或者其他的⼀些遍历xml的技术,⼀般都是
doc = DocumentHelper.parseText(xml); // 将字符串转为XML
Element rootElt = RootElement(); // 获取根节点
//System.out.println("根节点:" + Name()); // 拿到根节点的名称
Iterator iter = rootElt.elementIterator("CustBean"); // 获取根节点下的⼦节点head
System.out.println(iter);
List<book> list = new ArrayList<book>();
while (iter.hasNext()) {
Element itemEle = (Element) ();
~~~
Book book = new Book();
book.setName(itemEle.elementTextTrim("name"));
list.add(book);
}
今天从⽹上学习了另外⼀种⽅法,使⽤JAXBContext将xml⽂件直接转换成List<T>
1、定义类
使用dom4j解析xml文件@XmlRootElement(name = "Book")
public class Book implements Serializable {
private String bookid;
private String name;
//默认构造⽅法必须有
public Book() {
super();
}
省略getter、setter⽅法
}
2、新建List<T>类
@XmlRootElement(name = "Books")
public class ListBook {
private List<Book> list;
public ListBook() {
super();
}
@XmlElements(value={@XmlElement(name="Book", type=Book.class)})
public List<Book> getList() {
return list;
}
public void setList(List<Book> list) {
this.list = list;
}
}
3、建⽴测试类
package com.util;
import java.io.StringReader;
l.bind.JAXBContext;
l.bind.JAXBException;
l.bind.Unmarshaller;
import com.util.ListBook;
public class Test {
public static void XMLToBean(String strxml) {
try {
JAXBContext context = wInstance(ListBook.class);
Unmarshaller unmarshaller = ateUnmarshaller();
ListBook listbooks = (ListBook) unmarshaller.unmarshal(new StringReader(strxml));
for (Book book : List()) {
System.out.println("bookid==="+Bookid()+">###bookname==="+Name());
}
} catch (JAXBException e) {
e.printStackTrace();
}
}
public static void main(String[] args) {
String strxml = "<?xml version='1.0' encoding='UTF-8'?><Books><Book><bookid>1</bookid><name>知⾳</name>" + "</Book><Book><bookid>2</bookid><name>故事会</name></Book></Books>";
XMLToBean(strxml);
}
}

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。

发表评论