1. 程式人生 > >xml與java物件之間的相互轉化

xml與java物件之間的相互轉化

Java和xml的互相轉換,依靠強大的JAXBContext可以輕鬆實現。

下面通過一個簡單案例學習一下JAXBContext

首先準備好一個JavaBean供實驗:

注意

1、類檔案註解:@XmlRootElement不可缺少

2、2個Student的構造方法不能少

  1. @XmlRootElement
  2. publicclass Student {  
  3.     private String name;  
  4.     private String width;  
  5.     private String height;  
  6.     privateint age;  
  7.     public Student(String name, String width, String height, 
    int age) {  
  8.         super();  
  9.         this.name = name;  
  10.         this.width = width;  
  11.         this.height = height;  
  12.         this.age = age;  
  13.     }  
  14.     public String getName() {  
  15.         return name;  
  16.     }  
  17.     publicvoid setName(String name) {  
  18.         this.name = name;  
  19.     }  
  20.     public String getWidth() {  
  21.         return width;  
  22.     }  
  23.     publicvoid setWidth(String width) {  
  24.         this.width = width;  
  25.     }  
  26.     public String getHeight() {  
  27.         return height;  
  28.     }  
  29.     publicvoid setHeight(String height) {  
  30.         this.height = height;  
  31.     }  
  32.     publicint getAge() {  
  33.         return age;  
  34.     }  
  35.     publicvoid setAge(int age) {  
  36.         this.age = age;  
  37.     }  
  38.     public Student() {  
  39.         super();  
  40.     }  
  41. }  

JavaToXml:
  1. @Test
  2. publicvoid test01(){  
  3.     try {  
  4.         JAXBContext jc = JAXBContext.newInstance(Student.class);  
  5.         Marshaller ms = jc.createMarshaller();  
  6.         Student st = new Student("zhang""w""h"11);  
  7.         ms.marshal(st, System.out);  
  8.     } catch (JAXBException e) {  
  9.         // TODO Auto-generated catch block
  10.         e.printStackTrace();  
  11.     }  
  12. }  

XmlToJava

  1. //xml轉換Java
  2. @Test
  3. publicvoid test02() throws JAXBException{  
  4.     String xml = "<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"yes\"?><student><age>11</age><height>h</height><name>zhang</name><width>w</width></student>";  
  5.     JAXBContext jc = JAXBContext.newInstance(Student.class);  
  6.     Unmarshaller unmar = jc.createUnmarshaller();  
  7.     Student stu = (Student) unmar.unmarshal(new StringReader(xml));  
  8.     System.out.println(stu.getName());  
  9. }