jaxb能够很好的读写xml,主要用于java对象和xml文件的互转,以下是一个java对象转成xml文件的例子
例子为最简单的使用 留作以后参考
实体类classrom
package xml.jaxb.entity;
import java.util.List;
import javax.xml.bind.annotation.XmlRootElement;
@XmlRootElement
public class Classrom {
private String grade;
private String name;
private List<student> Student;
public String getGrade() {
return grade;
}
public void setGrade(String grade) {
this.grade = grade;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public List<student> getStudent() {
return Student;
}
public void setStudent(List<student> student) {
Student = student;
}
public Classrom(String grade, String name, List<student> student) {
super();
this.grade = grade;
this.name = name;
Student = student;
}
public Classrom() {
super();
}
@Override
public String toString() {
return "Classrom [grade=" + grade + ", name=" + name + ", Student="
+ Student + "]";
}
}
实体类student
package xml.jaxb.entity;
public class student {
private int id;
private String name;
private int age;
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public student(int id, String name, int age) {
super();
this.id = id;
this.name = name;
this.age = age;
}
public student() {
super();
}
@Override
public String toString() {
return "student [id=" + id + ", name=" + name + ", age=" + age + "]";
}
}
测试
package xml.jaxb;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.util.ArrayList;
import java.util.List;
import javax.xml.bind.JAXBContext;
import javax.xml.bind.JAXBException;
import javax.xml.bind.Marshaller;
import javax.xml.bind.Unmarshaller;
import org.junit.Test;
import xml.jaxb.entity.Classrom;
import xml.jaxb.entity.student;
public class JaxbTest {
/**
* java对象转换为xml文件
*/
@SuppressWarnings({ "rawtypes", "unchecked" })
@Test
public void testJabx(){
try {
JAXBContext jaxbContext=JAXBContext.newInstance(Classrom.class);
Marshaller marshaller=jaxbContext.createMarshaller();
List list=new ArrayList<student>();
list.add(new student(1,"ty",20));
list.add(new student(1,"ty1",22));
list.add(new student(1,"ty2",24));
Classrom classrom=new Classrom("2010", "tttyyy", list);
marshaller.marshal(classrom , new FileOutputStream(new File("d:/c1.xml")));
} catch (JAXBException e) {
e.printStackTrace();
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
/**
* 由xml转换为java对象
*/
@Test
public void testJabx01(){
try {
JAXBContext jaxbContext=JAXBContext.newInstance(Classrom.class);
Unmarshaller unmarshaller=jaxbContext.createUnmarshaller();
Classrom classrom=(Classrom) unmarshaller.unmarshal(new File("d:/c1.xml"));
System.out.println(classrom);
} catch (JAXBException e) {
e.printStackTrace();
}
}
}