JAVA將XML解析成實體類

大家好,我是成都LD。相信大家會經常遇到XML解析的問題,通常,在我們遇到這類問題時,會使用dom4j或jdom對XML每個節點進行遍歷,然後判斷某個節點是不是我們所需要的,再進行後續的操作。

今天我們介紹如何直接將XML節點映射爲實體類的成員變量,即將XML轉換爲JAVA實體類。

這裏我們用到的是jdk自身帶的xjc.exe程序。xjc.exe存在於jdk的bin目錄中,如果你的JDK目錄中沒有該文件,可以嘗試一下重新安裝jdk。

xjc是通過將schema文件轉換爲java實體類。因此我們需要根據XML寫出對應的schema文件(如果你對schema文件不太瞭解,建議先到W3CSchool看下Schema的資料)。假設有如下XML文件

<?xml version="1.0" encoding="utf-8"?>
<Objects>
<Object name="hello">
	<Properties name="a1">
		aaa
	</Properties>
	<Properties name="a1">
		bbb
	</Properties>
</Object>
</Objects>

現在我們需要根據XML寫出對應的Schema文件

<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
	<xs:element name="Property">
		<xs:complexType>
			<xs:simpleContent>
				<xs:extension base="xs:string">
					<xs:attribute name="Name" type="xs:string" />
				</xs:extension>
			</xs:simpleContent>
		</xs:complexType>
	</xs:element>
	<xs:element name="Object">
		<xs:complexType>
			<xs:sequence>
				<xs:element ref="Property" maxOccurs="unbounded" />
			</xs:sequence>
			<xs:attribute name="name" type="xs:string" />
		</xs:complexType>
	</xs:element>
	<xs:element name="Objects">
		<xs:complexType>
			<xs:sequence>
				<xs:element ref="Object" maxOccurs="unbounded" />
			</xs:sequence>
		</xs:complexType>
	</xs:element>
</xs:schema>

寫好schema文件之後,我們使用xjc來將schema文件轉換爲JAVA類。我將其schema文件拷貝到c盤,然後新建test目錄,執行以下命令,然後我們的test文件夾中就會產生對應的JAVA文件。如果命令執行過程中有什麼異常,請注意異常信息,然後分析解決。

我這裏只是舉了一個簡單例子,具體情況根據自身需要來寫

wKioL1RqvWTBk06xAACdV24lNFs034.jpg

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章