2013-01-08 191 views
-1

我只是想知道,如果有人能告訴我從這個樣本的XML文件轉換爲Java對象的快捷方式:轉換XML到Java對象

- <VM-DataCalculator> 
- <device name="Blackberry" fname="BlackBerry"> 
- <dataCategory> 
    <name>email</name> 
    <datarate>0.002</datarate> 
    <max>300</max> 
    <percent>12</percent> 
    <timeunit>month</timeunit> 
    </dataCategory> 
- <dataCategory> 
    <name>emailAttachment</name> 
    <datarate>0.2</datarate> 
    <max>100</max> 
    <percent>10</percent> 
    <timeunit>month</timeunit> 
    </dataCategory> 

完整的文件可以在這裏找到:http://www.virginmobile.ca/en/catalogue/VMDataCalculator.xml

任何幫助,將不勝感激。

+1

你的意思是XML DOM的模型

VMDataCalculator c = JAXB.unmarshal(new File("1.xml"), VMDataCalculator.class); 

更多的細節? – Andremoniy

+0

閱讀此:http://docs.oracle.com/cd/B28359_01/appdev.111/b28394/adx_j_parser.htm – Andremoniy

+1

Duplicate:http://stackoverflow.com/questions/3276149/converting-xml-to-java-對象 – elias

回答

2

標準解決方案只使用Java框架,將使用JAXP。有numerous other ways

JAXP是有點臃腫,解析一些XML DOM到你必須做到以下幾點:

DocumentBuilderFactory dbfactory = DocumentBuilderFactory.newInstance(); 
dbfactory.setNamespaceAware(true); 
DocumentBuilder domparser = dbfactory.newDocumentBuilder(); 
Document doc = domparser.parse("http://www.virginmobile.ca/en/catalogue/VMDataCalculator.xml"); 
2

你需要JAXB。這基本上是如何工作的,您創建的模型類

@XmlRootElement(name="VM-DataCalculator") 
class VMDataCalculator { 
    @XmlElement(name = "device") 
    List<Device> devices; 
} 

@XmlRootElement 
class Device { 
    @XmlElement(name = "dataCategory") 
    List<DataCategory> dataCategories; 
} 

@XmlRootElement 
class DataCategory { 
    @XmlElement 
    String name; 
      .... 
} 

和散集你的XML這裏http://docs.oracle.com/javase/tutorial/jaxb/intro/index.html