使用Java自带的API进行JAVA代码与XML文件的转换(JAXB)

来源:互联网 发布:ubuntu和kali 编辑:程序博客网 时间:2024/05/16 23:54

Student.java

package com.conv.xml;import javax.xml.bind.annotation.XmlRootElement;@XmlRootElementpublic class Student {private String id;private String name;private String sex;private int age;private Classroom classroom;public String getId() {return id;}public void setId(String id) {this.id = id;}public String getName() {return name;}public void setName(String name) {this.name = name;}public String getSex() {return sex;}public void setSex(String sex) {this.sex = sex;}public int getAge() {return age;}public void setAge(int age) {this.age = age;}public Classroom getClassroom() {return classroom;}public void setClassroom(Classroom classroom) {this.classroom = classroom;}public Student() {super();}public Student(String id, String name, String sex, int age,Classroom classroom) {super();this.id = id;this.name = name;this.sex = sex;this.age = age;this.classroom = classroom;}}

Classroom.java

package com.conv.xml;public class Classroom {private String id;private String name;private String grade;public String getId() {return id;}public void setId(String id) {this.id = id;}public String getName() {return name;}public void setName(String name) {this.name = name;}public String getGrade() {return grade;}public void setGrade(String grade) {this.grade = grade;}public Classroom(String id, String name, String grade) {super();this.id = id;this.name = name;this.grade = grade;}public Classroom() {super();}}

测试类:

package com.conv.xml;import java.io.StringReader;import javax.xml.bind.JAXBContext;import javax.xml.bind.JAXBException;import javax.xml.bind.Marshaller;import javax.xml.bind.Unmarshaller;public class Test {@org.junit.Testpublic void test1(){try {JAXBContext context = JAXBContext.newInstance(Student.class);Marshaller marshaller = context.createMarshaller();Student stu = new Student("1","zhangsan","男",25,new Classroom("1","计071-2","2011"));marshaller.marshal(stu, System.out);} catch (JAXBException e) {e.printStackTrace();}}@org.junit.Testpublic void test2(){String xml = "<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"yes\"?><student><age>25</age><classroom><grade>2011</grade><id>1</id><name>计071-2</name></classroom><id>1</id><name>zhangsan</name><sex>男</sex></student>";try {JAXBContext context = JAXBContext.newInstance(Student.class);Unmarshaller unmarshaller = context.createUnmarshaller();Student stu = (Student)unmarshaller.unmarshal(new StringReader(xml));System.out.println("name:"+stu.getName()+"   className:"+stu.getClassroom().getName());} catch (JAXBException e) {e.printStackTrace();}}}
使用了JUNIT进行测试。

0 0
原创粉丝点击