利用JAXBContext将xml文件转换成List<T>

前端之家收集整理的这篇文章主要介绍了利用JAXBContext将xml文件转换成List<T>前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我们在将xml文件封装成List<T>形式的文件时,通常使用dom4j或者其他的一些遍历xml的技术,一般都是 doc = DocumentHelper.parseText(xml); // 将字符串转为XML Element rootElt = doc.getRootElement(); // 获取根节点 //System.out.println("根节点:" + rootElt.getName()); // 拿到根节点的名称 Iterator iter = rootElt.elementIterator("CustBean"); // 获取根节点下的子节点head System.out.println(iter); List<book> list = new ArrayList<book>(); while (iter.hasNext()) { Element itemEle = (Element) iter.next(); ~~~ Book book = new Book(); book.setName(itemEle.elementTextTrim("name")); list.add(book); } 今天从网上学习了另外一种方法,使用JAXBContext将xml文件直接转换成List<T> 1、定义类 @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; import javax.xml.bind.JAXBContext; import javax.xml.bind.JAXBException; import javax.xml.bind.Unmarshaller; import com.util.ListBook; public class Test { public static void XMLToBean(String strxml) { try { JAXBContext context = JAXBContext.newInstance(ListBook.class); Unmarshaller unmarshaller = context.createUnmarshaller(); ListBook listbooks = (ListBook) unmarshaller.unmarshal(new StringReader(strxml)); for (Book book : listbooks.getList()) { System.out.println("bookid==="+book.getBookid()+"########bookname==="+book.getName()); } } 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); } }

猜你在找的XML相关文章