java - 贾克斯B : is it recommended to use JAXB to get java objects from xml in non-webservice project

标签 java xml web-services jaxb xsd

我正在尝试使用 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/

相关文章:

java - 已部署但上下文无法从 tomcat 8 启动

xml - 使用经典 ASP 获取节点属性的值

java - Android 应用中的 Admob 广告问题

javax.xml.ws.soap.SOAPFaultException : None of the policy alternatives can be satisfied

java - PKIX 路径构建失败(SSLHandshake 异常)

java - java中executeBatch返回的PostgreSQL结果集

java - Google App Engine Blob 操作 [常规]

java - 如何检查通过某个接口(interface)地址的互联网是否可用?

php - 使用 xmlns :xlink attribute in a node 创建 XML

c# - 无法从 ASP.NET 调用 DLL