利用JAXBContext将xml文件转换成List<T>
2016-07-30 10:51
871 查看
我们在将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);
}
}
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 与 JSON 优劣对比
- As3.0 xml + Loader应用代码
- 网马生成器 MS Internet Explorer XML Parsing Buffer Overflow Exploit (vista) 0day
- ext读取两种结构的xml的代码
- 实例解析Ruby程序中调用REXML来解析XML格式数据的用法
- Ruby中XML格式数据处理库REXML的使用方法指南
- C#中如何使用 XmlReader 读取XML文件
- C#针对xml基本操作及保存配置文件应用实例
- Ruby使用REXML库来解析xml格式数据的方法
- Ruby程序中创建和解析XML文件的方法
- Ruby的XML格式数据解析库Nokogiri的使用进阶
- asp下查询xml的实现代码
- sqlserver FOR XML PATH 语句的应用
- 使用sp_xml_preparedocument处理XML文档的方法
- EBS xml publisher中文乱码问题及解决办法
- C#中的Linq to Xml详解
- C#代码操作XML进行增、删、改操作
- C#中list用法实例
- C#操作XML文件实例汇总