本節(jié)的演示,Java bean 對(duì)象依然使用 Student.java
,在上一節(jié)已經(jīng)定義過了。
public static void xmlTojava() throws Exception {
// 獲取JAXB的上下文環(huán)境,需要傳入具體的 Java bean -> 這里使用Student
JAXBContext context = JAXBContext.newInstance(Student.class);
// 創(chuàng)建 UnMarshaller 實(shí)例
Unmarshaller unmarshaller = context.createUnmarshaller();
// 加載需要轉(zhuǎn)換的XML數(shù)據(jù) -> 這里使用InputStream,還可以使用File,Reader等
InputStream stream = SimpleTest.class.getClassLoader().getResourceAsStream("lesson1.xml");
// 將XML數(shù)據(jù)序列化 -> 該方法的返回值為Object基類,需要強(qiáng)轉(zhuǎn)類型
Student stu = (Student) unmarshaller.unmarshal(stream);
// 將結(jié)果打印到控制臺(tái)
System.out.println(stu);
}
這里演示了最基本的XML數(shù)據(jù)轉(zhuǎn)換為Java 對(duì)象的過程。為了方便閱讀,每一步都有簡明注釋。
所需的lesson1.xml
文件如下:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<student>
<age>22</age>
<id>001</id>
<name>Tom</name>
</student>
這個(gè)文件,其實(shí)就是上一節(jié)中輸出的數(shù)據(jù)。
public static void main(String[] args) throws Exception {
xmlTojava();
}
使用main方法簡單測試一下,在控制臺(tái)可以看到如下輸出。
Student [id=001, name=Tom, age=22]
有幾點(diǎn)需要注意:
更多建議: