这是我将 XML 文件创建为 Java 对象的方式。 我使用了“xjc”和有效的 XML 模式,并且得到了一些“生成的”*.java 文件。 我将它们导入到 eclipse 中的另一个包中。 我现在正在以两种方式读取 XML 文件。
1) 加载 XML 文件:
System.out.println("Using FILE approach:");
File f = new File ("C:\\test_XML_files\\complex.apx");
JAXBElement felement = (JAXBElement) u.unmarshal(f);
MyObject fmainMyObject = (MyObject) felement.getValue ();
2) 使用 DOM 构建器:
System.out.println("Using DOM BUILDER Approach:");
JAXBElement element = (JAXBElement) u.unmarshal(test());;
MyObject mainMyObject = (MyObject ) element.getValue ();
现在在方法“test()”中包含以下代码:
public static Node test(){
Document document = parseXmlDom();
return document.getFirstChild();
}
private static Document parseXmlDom() {
Document document = null;
try {
// getting the default implementation of DOM builder
DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
DocumentBuilder builder = factory.newDocumentBuilder();
// parsing the XML file
document = builder.parse(new File("C:\\test_XML_files\\MyXML_FILE.apx"));
} catch (Exception e) {
// catching all exceptions
System.out.println();
System.out.println(e.toString());
}
return document;
}
这是对 Java 对象执行 XML 的标准方法吗? 我测试了是否可以访问该对象并且一切正常。 (迄今为止) 你建议采用不同的方法吗?还是这个就足够了?
最佳答案
我不知道什么是“标准方式”,但两种方式对我来说都不错。第一种方法看起来更简单(代码更少),所以这就是我可能会这样做的方法,除非有其他因素/要求。
FWIW,我希望实现 unmarshal(File)
方法来完成您在第二种方法中所做的事情。
但是,实际上由您(和您的同事)来判断什么对您的项目“足够”。
关于java - XML解析java确认,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5047727/