加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

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

发布时间:2020-12-16 02:18:38 所属栏目:百科 来源:网络整理
导读:我们在将xml文件封装成ListT形式的文件时,通常使用dom4j或者其他的一些遍历xml的技术,一般都是 doc = DocumentHelper.parseText(xml); // 将字符串转为XML Element rootElt = doc.getRootElement(); // 获取根节点 //System.out.println("根节点:" + root
我们在将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); } }

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读