-1

我只是想知道是否有人可以向我展示一种将 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

任何帮助,将不胜感激。

4

2 回答 2

2

仅使用 Java 框架的标准解决方案是使用JAXP。还有许多其他方法

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");
于 2013-01-08T17:10:33.173 回答
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

于 2013-01-08T17:38:56.317 回答