主要使用到的Java类有:javax.xml.bind.JAXBContext,javax.xml.bind.Marshaller(编排)
代码主要展示如下:
public classStudent {private intid;privateString name;private intage;public intgetId() {returnid;
}public void setId(intid) {this.id =id;
}publicString getName() {returnname;
}public voidsetName(String name) {this.name =name;
}public intgetAge() {returnage;
}public void setAge(intage) {this.age =age;
}public Student(int id, String name, intage) {super();this.id =id;this.name =name;this.age =age;
}publicStudent() {super();//TODO Auto-generated constructor stub
}
}
importjavax.xml.bind.annotation.XmlRootElement;
@XmlRootElementpublic classClassRoom {private intclassRoomId;privateString classRoomName;privateStudent student;public intgetClassRoomId() {returnclassRoomId;
}public void setClassRoomId(intclassRoomId) {this.classRoomId =classRoomId;
}publicString getClassRoomName() {returnclassRoomName;
}public voidsetClassRoomName(String classRoomName) {this.classRoomName =classRoomName;
}publicStudent getStudent() {returnstudent;
}public voidsetStudent(Student student) {this.student =student;
}public ClassRoom(intclassRoomId, String classRoomName, Student student) {super();this.classRoomId =classRoomId;this.classRoomName =classRoomName;this.student =student;
}publicClassRoom() {super();//TODO Auto-generated constructor stub
}
}
测试:
importjavax.xml.bind.JAXBContext;importjavax.xml.bind.Marshaller;public classTest {/***@paramargs*/
public static void main(String[] args)throwsException{//TODO Auto-generated method stub
JAXBContext jbt= JAXBContext.newInstance(ClassRoom.class);
ClassRoom cr= new ClassRoom(1, "一班", new Student(10, "张三", 22));
Marshaller ms=jbt.createMarshaller();
ms.marshal(cr, System.out);
}
}
结果:<?xml version="1.0" encoding="UTF-8" standalone="yes"?>1一班2210张三
在这个简单的示例中主要留意的地方:1.Test.java 中的代码
2. ClassRoom 类中加注解@XmlRootElement
把生成的xml文件生成Java对象:
主要代码:
String xml ="<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"yes\"?>1一班2210张三";
JAXBContext unjbt= JAXBContext.newInstance(ClassRoom.class);
Unmarshaller unms=unjbt.createUnmarshaller();
ClassRoom uncr=(ClassRoom) unms.unmarshal(newStringReader(xml));
System.out.println(uncr.getClassRoomId()+uncr.getClassRoomName());