JAXB 简单使用

来源:互联网 发布:维棠 mac 编辑:程序博客网 时间:2024/05/22 10:47

关于JAXB的细节原理参考

http://blog.csdn.net/xjtuse_mal/article/details/6930538


自己实现测试了一下


两个xml文件内容

student.xml

<?xml version="1.0" encoding="UTF-8"?><student><name>student</name></student>

teacher.xml

<?xml version="1.0" encoding="UTF-8"?><teacher><name>teacher</name></teacher>

相应的两个java类

Student.java

import javax.xml.bind.annotation.XmlRootElement;import com.sun.xml.internal.txw2.annotation.XmlElement;@XmlRootElementpublic class Student {private String name;@XmlElementpublic String getName() {return name;}public void setName(String name) {this.name = name;}}

Teacher.java

import javax.xml.bind.annotation.XmlElement;import javax.xml.bind.annotation.XmlRootElement;@XmlRootElementpublic class Teacher {private String name;@XmlElementpublic String getName() {return name;}public void setName(String name) {this.name = name;}}


其中还必须有一个ObjectFactory.java类 否则会报异常

import javax.xml.bind.annotation.XmlRegistry;// 必须的@XmlRegistry public class ObjectFactory {    public ObjectFactory() {    }     public Student createStudent() {        return new Student();    }        public Teacher createTeacher() {        return new Teacher();    }}

测试类

public class JAXBTest {public static void main(String[] args) throws Exception {JAXBContext context = JAXBContext.newInstance(JAXBTest.class.getPackage().getName());Unmarshaller unmarshaller = context.createUnmarshaller();Student newStudent = (Student) unmarshaller.unmarshal(new File("students.xml"));System.out.println(newStudent.getName());Teacher teacher = (Teacher) unmarshaller.unmarshal(new File("teacher.xml"));System.out.println(teacher.getName());}}

测试结果

student
teacher

0 0
原创粉丝点击