将XML转换为Java对象

时间:2013-01-08 17:02:44

标签: java xml converter calculator

我只是想知道是否有人可以通过此示例向我展示将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

任何帮助都将不胜感激。

2 个答案:

答案 0 :(得分: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");

答案 1 :(得分: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

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

此处有更多详情http://docs.oracle.com/javase/tutorial/jaxb/intro/index.html