1.@xmlrootelement
用於類級別的註解,對應xml的跟元素,常與 @xmltype 和 @xmlaccessortype一起使用,主要的作用是對映xml的根節點
2.@xmlelement
將j**a物件的屬性對映為xml的節點,在使用@xmlelement時,可通過name屬性改變j**a物件屬性在xml中顯示的名稱。
@xmlelement(name="class")
private string clz;3.@xmlelements
當節點下面包含多個相同的子節點時,該註解可以對映成乙個j**abean的集合屬性,其中註解中value的屬性對應的是乙個@xmlelement的集合
1 @xmlelements(value = )
2 private list selects;4.@xmlattribute 用於把j**a物件的屬性對映為xml的屬性,並可通過name屬性為生成的xml屬性指定別名@xmlattribute(name = "id")
private string id;5.@xmlaccessortype 用於指定由j**a物件生成xml檔案時對j**a物件屬性的訪問方式。常與@xmlrootelement、@xmltype一起使用。它的屬性值是xmlaccesstype的4個列舉值,分別為:xmlaccesstype.field:j**a物件中的所有成員變數xmlaccesstype.property:j**a物件中所有通過getter/setter方式訪問的成員變數xmlaccesstype.public_member:j**a物件中所有的public訪問許可權的成員變數和通過getter/setter方式訪問的成員變數xmlaccesstype.none:j**a物件的所有屬性都不對映為xml的元素 注意:@xmlaccessortype的預設訪問級別是xmlaccesstype.public_member,因此,如果j**a物件中的private成員變數設定了public許可權的getter/setter方法,就不要在private變數上使用@xmlelement和@xmlattribute註解,否則在由j**a物件生成xml時會報同乙個屬性在j**a類裡存在兩次的錯誤。同理,如果@xmlaccessortype的訪問許可權為xmlaccesstype.none,如果在j**a的成員變數上使用了@xmlelement或@xmlattribute註解,這些成員變數依然可以對映到xml檔案。 注意:雖然@xmlaccessortype為xmlaccesstype.none,但是在j**a類的私有屬性上加了@xmlattribute和@xmlelement註解後,這些私有成員會對映生成xml的元素?6.@xmlaccessororder 用於對j**a物件生成的xml元素進行排序。它有兩個屬性值: accessororder.alphabetical:對生成的xml元素按字母書序排序 xmlaccessorder.undefined:不排序7.@xmltransient 用於標示在由j**a物件對映xml時,忽略此屬性。即,在生成的xml檔案中不出現此元素。8.@xmlj**atypeadapter 常用在轉換比較複雜的物件時,如map型別或者格式化日期等。使用此註解時,需要自己寫乙個adapter類繼承xmladapter抽象類,並實現裡面的方法。? ? ? ?package org.lyrk.accp8.s2.chapter.xml;
import j**ax.xml.bind.annotation.adapters.xmladapter;
import j**a.text.dateformat;
import j**a.text.******dateformat;
import j**a.util.date;
/** * 時間格式的轉化器
* created by niechen on 17/5/9.
*/public class datexmladapter extends xmladapter
@override
public string marshal(date v) throws exception
}9.示例**9.1 擴充套件bean類package org.lyrk.accp8.s2.chapter.xml;
import j**ax.xml.bind.annotation.*;
import j**ax.xml.bind.annotation.adapters.xmlj**atypeadapter;
import j**a.util.date;
import j**a.util.list;
/** * created by niechen on 17/5/9.
*/@xmlrootelement
@xmlaccessortype(xmlaccesstype.field)
@xmlaccessororder(value = xmlaccessorder.alphabetical)
public class bean )
private list properties;//獲取xml中所有property節點
public date getdate()
public void setdate(date date)
public list getproperties()
public void setproperties(list properties)
public string getid()
public void setid(string id)
public string getclz()
public void setclz(string clz)
}@xmlaccessortype(value = xmlaccesstype.field)
class property
public void setid(string id)
public string getvalue()
public void setvalue(string value)
}9.2 beans.xml檔案
2017-05-08 11:22:33
9.3 主函式入口 1 package org.lyrk.accp8.s2.chapter.xml;
2 3 import j**ax.xml.bind.jaxbcontext;
4 import j**ax.xml.bind.jaxbexception;
5 import j**ax.xml.bind.unmarshaller;
6 import j**a.io.inputstream;
7 8 /**
9 * created by niechen on 17/5/9.
10 */
11 public class test
25} catch (jaxbexception e)
28 }
29 }
30 輸出結果:
31 id:student
32 class:org.test.entity.student
33 date:1483845753000
34 property id屬性:nameproperty value屬性:張三
35 property id屬性:ageproperty value屬性:18?鄭州好的**醫院:鄭州同濟醫院**好:鄭州醫院**哪家好些:鄭州正規專業**醫院:鄭州專業**:鄭州****諮詢:鄭州檢查**去哪個醫院:鄭州**醫院:
使用PULL解析XML檔案
pull解析器的執行方式與 sax 解析器相似。它提供了類似的事件,如 開始元素和結束元素事件,使用parser.next 可以進入下乙個元素並觸發相應事件。事件將作為數值 被傳送,因此可以使用乙個switch對感興趣的事件進行處理。當元素開始解析時,呼叫parser.nexttext 方法可以獲取...
使用SAX解析xml檔案
解析xml檔案有好幾種方法,包括有 dom jdom sax解析 demo4j 等等 本篇主要講解sax是如何解析xml檔案的。專案結構如下 新建乙個parserutil類,繼承自defaulthandler,並重寫五個方法 startdocument startelement characters...
使用Dom生成xml檔案和解析xml檔案
xml這種檔案格式在很多時候都是很適合我們用來訪問資料的,所以利用程式來生成xml檔案和解析xml檔案就顯得比較重要了。在dom中是把每乙個元素都看做是乙個節點node的,所有頁面上的屬性 元素等都是繼承自node的,所以當獲取到的是乙個node,而你知道它實際的型別並需要使用的時候就可能會需要進行...