我正在尝试使用 SAX 和 DOM 解析器来解析我的巨型 xml。 DOM 解析器占用了大量内存,而 SAX 解析器的实现让我检查一些嵌套标签及其名称,这花费了大量时间,而且看起来效率不高。
我使用 JAXB 解析 xml 并创建它的 java 对象,并且我从 getters 获取值。(这些类是使用我的 xml 文件的 XSD 生成的)
JAXBContext jaxbContext = JAXBContext.newInstance(Myclass.class);
解码器 jaxbUnmarshaller = jaxbContext.createUnmarshaller();
InputStream in = new ByteArrayInputStream(xmldata.getBytes()); Myclass classobject = (Myclass) jaxbUnmarshaller.unmarshal(in);
类对象给出了我想要的。
我的项目不是 webservice 项目。所以我的问题是:是否建议在 Java 项目中使用 JAXB?我在技术上也不解析 xml(JAXB 附带 DOM 和 SAX),所以它解码是解析?
最佳答案
是的,JAXB 可以(并且经常)在 Java SE 中用于非 Web 服务应用程序。它包含在 Java SE 6 中。
适合您的正确 XML 处理器(DOM、SAX、StAX、JAXB、XPath 等)取决于您要构建的内容。而且,它不需要是“非此即彼”的选择,因为许多 API 都是为了协同工作而设计的。
关于java - 贾克斯B : is it recommended to use JAXB to get java objects from xml in non-webservice project,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22952138/