【发布时间】:2011-02-17 22:56:25
【问题描述】:
我需要在 java 中解析一个构建树的 XML 文件(我正在使用 DOM),然后我需要使用节点(及其属性)创建对象。这是一种好的方法吗? 如果没有 SAX 或 DOM,我还能做同样的事情吗?
【问题讨论】:
我需要在 java 中解析一个构建树的 XML 文件(我正在使用 DOM),然后我需要使用节点(及其属性)创建对象。这是一种好的方法吗? 如果没有 SAX 或 DOM,我还能做同样的事情吗?
【问题讨论】:
JAXB 是从 XML 创建对象的标准方法。
【讨论】:
SAX 和 DOM 是 XML 的两个标准解析器。 SAX 不会为您创建内存中的树;它会触发您可以根据需要做出响应的事件。 DOM 需要额外的步骤来解析 XML 并为您创建一个内存中的树,您可以使用标准 API 对其进行操作。
如果您不需要 SAX 或 DOM,则意味着编写自己的解析器。你到底为什么要这么做?
JAXB 是从 XML 创建对象的标准方法,它在后台重用标准解析器。
【讨论】:
有许多 XML 树模型在架构上类似于 DOM,但性能和可用性更好:我更喜欢 XOM,其他的是 JDOM 和 DOM4J。如果您确实需要使用这一级别的接口,那么 DOM 是一个非常差的选择:如果它不是唯一一个进入 JDK 的接口,那么没有人会使用它。 (但我个人的偏好是尽可能避免将 XML 数据低级转换为 Java 对象,而是使用 XSLT 和 XQuery 等面向 XML 的高级语言进行所有处理。)
【讨论】: