JAXB vs DOM 和 SAX
2022-09-01 14:54:43
一段时间以来,我一直在使用DOM来解析我的小xml文档。在阅读有关JAXB(http://www.oracle.com/technetwork/articles/javase/index-140168.html)之后,我计划使用DOM的JAXB。
请让我知道这是否是正确的方法。
一段时间以来,我一直在使用DOM来解析我的小xml文档。在阅读有关JAXB(http://www.oracle.com/technetwork/articles/javase/index-140168.html)之后,我计划使用DOM的JAXB。
请让我知道这是否是正确的方法。
JAXB不能直接与DOM和SAX相提并论。Java DOM 和 SAX 解析 API 是用于解析 XML 文档的较低级别 API,而 JAXB(用于 XML 绑定的 Java API)是用于将 XML 元素和属性转换为 Java 对象层次结构的更高级别 API(反之亦然)。JAXB 的实现很可能在后台使用 DOM 或 SAX 解析器来执行 XML 输入数据的实际解析。
通常,您需要将 XML 文档的内容转换为 Java 程序中的对象。如果这是您想要做的,那么 JAXB 可能更易于使用,并且您需要编写的代码比使用 DOM 或 SAX 解析 API 时少。
它是否适合您的情况取决于项目的功能和技术要求。
(约7年太晚了,但仍然)
为了与公认的答案相矛盾,我非常怀疑JAXB是在DOM之上实现的 - 这将需要两个对象模型(Java和DOM),并且会完全击败XML绑定(JAXB中的XB)的点,在性能/空间方面更糟,它需要两个模型相互支持。
在我看来,JAXB 在考虑在 Java 中处理 XML 双向映射的方法时,显然是 DOM 的类似物。DOM和JAXB只是IBM称之为XOM的案例。
在几乎所有情况下,我都更喜欢 JAXB 而不是 DOM,并且更喜欢手工滚动而不是 SAX - 主要是因为我发现 SAX 和 DOM API 的“语言不可知论者”完全怪诞。
显然,如果你的数据集太大而无法放入内存,那么对象模型就不可行。否则