XML - JAXB示例
一、簡介
JAXB 即 Java Architecture for XML Binding,它提供一個繫結的編譯器和一個執行時框架用來支援 XML 和 Java 物件的雙向對映。
二、示例
1、marshaller
程式碼:
JAXBContext ctx = JAXBContext.newInstance(User.class);
Marshaller marshaller = ctx.createMarshaller();
User user = new User(1, "admin", new Role(1, "System", "System Management"));
marshaller.marshal(user, System.out);
結果: <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<user>
<id>1</id>
<name>admin</name>
<role>
<id>1</id>
<name>System</name>
<note>System Management</note>
</role>
</user>
2、unmarshaller
程式碼:
JAXBContext ctx = JAXBContext.newInstance(User.class);
Unmarshaller unmarshaller = ctx.createUnmarshaller();
String xml =
"<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"yes\"?>" +
"<user>" +
" <id>1</id>" +
" <name>admin</name>" +
" <role>" +
" <id>1</id>" +
" <name>System</name>" +
" <note>System Management</note>" +
" </role>" +
"</user>";
User user = (User) unmarshaller.unmarshal(new StringReader(xml));
System.out.println(user);
結果:
User [id=1, name=admin, role=Role [id=1, name=System, note=System Management]]
import javax.xml.bind.annotation.XmlRootElement;
/**
* 實體, 需註解@XmlRootElement,否則異常javax.xml.bind.MarshalException
*/
@XmlRootElement
public class User {
private int id;
private String name;
private Role role;
/** getter and setter **/
}
public class Role {
private int id;
private String name;
private String note;
/** getter and setter **/
}
相關文章
- jaxb解析xmlXML
- 使用JAXB處理JAVA和XMLJavaXML
- jaxb輸出xml檔案的中文問題?XML
- java使用jaxb解析XML(含根據xml自動生成實體類)JavaXML
- JAXB解析xml時忽略名稱空間的方法XML
- XML - StAX示例XML
- 批量拆分XML文件示例KGXML
- XML - Schema之基礎示例XML
- JAXB 深入顯出 - JAXB 教程 解讀 JAXBContextContext
- 元件使用總結:使用 JAXB 實現 XML檔案和java物件互轉元件XMLJava物件
- JAXB(一)——初體驗之實現XML和物件之間的對映XML物件
- JAXB簡介
- 單一XML文件拆分示例SHXML
- Jaxb - com.sun.xml.bind.v2.runtime.IllegalAnnotationsException: 8 counts of IllegalAnnotationExceptiXMLException
- 使用Digester解析XML文件示例 (轉)XML
- JAXB玩轉名稱空間
- JDK6.0的新特性之二:使用JAXB2來實現物件與XML之間的對映JDK物件XML
- XML Schema 複雜元素型別詳解:定義及示例解析XML型別
- 在Gradle中使用jaxb的xjc外掛Gradle
- 最全MyBatis中XML對映檔案(Mapper)標籤分析及示例MyBatisXMLAPP
- CXF+Spring+JAXB+Json構建Restful服務SpringJSONREST
- JAXB名稱空間及名稱空間字首處理
- java.lang.LinkageError: JAXB 2.0 API is being loaded from the bootstrap classloaJavaErrorAPIboot
- XMLXML
- Python解析xml[xml.dom]PythonXML
- XML進階:Level 1 – XML簡介XML
- XML資料島(XML Data Island) (轉)XML
- XML入門指南(4)XML元素(轉)XML
- 示例
- Xml解析XML
- XML操作XML
- 操作XMLXML
- xml 操作XML
- [CareerCup] 17.10 Encode XML 編碼XMLXML
- 讀取xml檔案 解析雙層xmlXML
- XML入門指南(18)XML行為(轉)XML
- XML入門指南(15)XML編碼(轉)XML
- XML入門指南(6)XML確認(轉)XML