java對象和xml互轉

步驟一: 創建測試對象


/**
 * 功能說明:測試實體
 * 
 * 
 */
@XmlRootElement(name = "學生")
public class Student {


	private int age;
	private String name;
	private String sex;


	@XmlElement(name = "年齡")
	public int getAge() {
		return age;
	}


	public void setAge(int age) {
		this.age = age;
	}


	@XmlElement(name = "姓名")
	public String getName() {
		return name;
	}


	public void setName(String name) {
		this.name = name;
	}


	@XmlElement(name = "性別")
	public String getSex() {
		return sex;
	}


	public void setSex(String sex) {
		this.sex = sex;
	}


	public Student(int age, String name, String sex) {
		super();
		this.age = age;
		this.name = name;
		this.sex = sex;
	}


	public Student() {
		super();
	}


	@Override
	public String toString() {
		return "Student [age=" + age + ", name=" + name + ", sex=" + sex + "]";
	}


}





步驟二 : 測試類


import java.io.File;

import javax.xml.bind.JAXBContext;
import javax.xml.bind.JAXBException;
import javax.xml.bind.Marshaller;
import javax.xml.bind.Unmarshaller;


/**
 * 功能說明:
 * 
 * 
 */
public class Test {

	public static void main(String[] args) throws Exception {
		convertXML();// 將對象轉xml
		convertObject();// xml轉對象
	}

	/**
	 * @throws JAXBException
	 */
	private static void convertObject() throws JAXBException {
		JAXBContext jc = JAXBContext.newInstance(Student.class);

		Unmarshaller um = jc.createUnmarshaller(); // 創建一個可以用來將 XML 數據轉換爲 java
													// 內容樹的 Unmarshaller 對象。

		Student stu = (Student) um.unmarshal(new File("D:\\stu.xml"));// 轉換指定文件

		System.out.println(stu);
	}

	/**
	 * @throws JAXBException
	 *             將java 對象轉換爲xml
	 */
	private static void convertXML() throws JAXBException {
		Student stu = new Student(1, "zhangsan", "nan");

		JAXBContext jc = JAXBContext.newInstance(stu.getClass());

		Marshaller m = jc.createMarshaller();// 創建一個可以用來將 java 內容樹轉換爲 XML 數據的
												// Marshaller 對象

		m.marshal(stu, System.out);// 輸出到控制檯

		File f = new File("D:\\stu.xml");

		m.marshal(stu, f);// 輸出到文件
	}
}



直接複製就OK咯.




發佈了23 篇原創文章 · 獲贊 1 · 訪問量 5萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章