2013-01-08 4 views
-1

Je me demandais si quelqu'un peut me montrer un moyen rapide de convertir un fichier XML pour objet Java à partir de cet exemple:XML Convertir en Java Object

- <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> 

fichier est disponible ici: http://www.virginmobile.ca/en/catalogue/VMDataCalculator.xml

Toute aide serait appréciée.

+1

Vous voulez dire DOM-modèle XML? – Andremoniy

+0

Lisez ceci: http://docs.oracle.com/cd/B28359_01/appdev.111/b28394/adx_j_parser.htm – Andremoniy

+1

Dupliquer: http://stackoverflow.com/questions/3276149/converting-xml-to-java- objets – elias

Répondre

2

La solution standard, qui n'utilise que le framework Java, doit utiliser JAXP. Il y a numerous other ways.

JAXP est un peu ballonné, pour analyser certains XML dans le DOM que vous auriez à faire ce qui suit:

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

Vous avez besoin JAXB. Ceci est fondamentalement la façon dont cela fonctionne, vous créez vos classes de modèle

@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; 
      .... 
} 

et unmarshal votre xml

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

plus de détails ici http://docs.oracle.com/javase/tutorial/jaxb/intro/index.html