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 **/
}
相關文章
- java使用jaxb解析XML(含根據xml自動生成實體類)JavaXML
- Jaxb - com.sun.xml.bind.v2.runtime.IllegalAnnotationsException: 8 counts of IllegalAnnotationExceptiXMLException
- Jaxb - 生成帶名稱空間和節點字首的Xml的方式XML
- JAXB 深入顯出 - JAXB 教程 解讀 JAXBContextContext
- 元件使用總結:使用 JAXB 實現 XML檔案和java物件互轉元件XMLJava物件
- 批量拆分XML文件示例KGXML
- 單一XML文件拆分示例SHXML
- XML Schema 複雜元素型別詳解:定義及示例解析XML型別
- 最全MyBatis中XML對映檔案(Mapper)標籤分析及示例MyBatisXMLAPP
- XMLXML
- 使用FOR XML AUTO控制XML輸出KHXML
- XML文件XML
- Xml解析XML
- 序列化篇 生成xml 以及讀取xmlXML
- PHP xml 轉陣列 陣列轉 xml 操作PHPXML陣列
- XML基礎XML
- php建立XMLPHPXML
- Java解析XMLJavaXML
- setting.xmlXML
- go 解析xmlGoXML
- 7.86 EXTRACT (XML)XML
- xml筆記XML筆記
- xml檔案XML
- L.xmlXML
- iOS – XML解析iOSXML
- XML介紹XML
- XML 元素概述XML
- 淺析XMLXML
- XML與JSONXMLJSON
- WebService XML SoapFormatterWebXMLORM
- Mybatis去xml化:我再也不想寫xml了MyBatisXML
- Python xml.etree.ElementTree讀寫xml檔案例項PythonXML
- 傳智播客PHP2015-XML視訊教程 XML-01-xml介紹 筆記PHPXML筆記
- Spring | xx-servlet.xml 和 applicationContext.xml 的區別SpringServletXMLAPPContext
- XML序列化XML
- perl+xml+iniXML
- Android XML 屬性AndroidXML
- XML Schema定義XML
- python之XML解析PythonXML