【发布时间】:2017-10-06 09:44:27
【问题描述】:
哪一种是读取xml的有效方式。我知道两种方法:
1)JAXB:
通过使用 jaxb 注释来注释我的类,我们可以使用对象的编组和解组来获取 java 对象中的 xml,反之亦然。
2)DOM: 可以使用 dom 解析器解析 xml 并使用 xml 中的 xpath 值。
DOM 示例:
File fXmlFile = new File("/Users/link1/input.xml");
DocumentBuilderFactory dbFactory = DocumentBuilderFactory.newInstance();
DocumentBuilder dBuilder = dbFactory.newDocumentBuilder();
Document doc = dBuilder.parse(fXmlFile);
doc.getDocumentElement().normalize();
根据业务需求,我希望使用上述两种方式之间最快和更好的方式。建议和一些策略将不胜感激。
【问题讨论】:
-
您是否需要使用 JAXB 或 DOM,或者 SAX、StAX 和 Jackson XmlMapper 也是一种选择?
-
你的 google foo 会告诉你正确的答案。但是 .. 如果您的 xml 很小(认为 500 MB)就位(DOM),否则转到流式传输(SAX,StaX)
-
@toongeorges 作为一个新用户,我目前只期待这两个选项,我需要选择其中一个。
-
DOM 将文档加载到您的程序内存中,因此您可以访问所有节点,我认为构建 JAXB 类更有效。