您的位置:首页 > 编程语言 > Java开发

【笔记】利用java进行xml编程(IBM developerworks )

2004-09-07 10:53 399 查看
编程接口

Document Object Model (DOM,文档对象模型),Level 2
Simple API for XML (SAX), Version 2.0
JDOM, Jason Hunter 和 Brett McLaughlin 创立的一种简单 Java API
Java API for XML Processing (JAXP)

说明:

使用 DOM、SAX 或 JDOM 处理 XML 文档的内容。
如果使用 DOM 或 SAX,则使用 JAXP 创建解析器。
如果使用 JDOM,则 JDOM 库为您创建解析器。

【me】解析器分为验证和非验证的,一般在确定xml有效且符合Document Type Definition (DTD,文档类型定义)规则的情况下,为了节省时间等,使用非验证的解析器。

文档对象模型(Document Object Model,DOM)
文档对象模型(DOM)是正式的 W3C 推荐标准。它定义了一个接口,使程序能够访问和更新 XML 文档的结构。如果一个 XML 解析器声称支持 DOM,就意味着它实现了该标准中定义的接口。
目前,有两个级别的 DOM 是正式的推荐标准,被明智地命名为 DOM Level 1 和 DOM Level 2。预计 DOM Level 3 将在 2004 年初正式发布。本教程中所讨论的 DOM 功能都是 DOM Level 1 的一部分,因此这些示例代码可用于任何 DOM 解析器。

Simple API for XML (SAX)
Simple API for XML (SAX) API 是处理 XML 文档内容的一种替代方法。它的设计目标是更少的内存占用,但是把更多的工作交给了程序员。SAX 和 DOM 是互补的,有各自的适用环境。

作为一个 事实上的 标准,SAX 最初由 David Megginson 开发,吸收了 Internet 上许多用户的想法。完整的 SAX 标准请参阅 参考资料。您的解析器文档可能也描述了 SAX 标准。

JDOM
尽管 SAX 和 DOM 提供了许多有用的功能,对于程序员而言有些任务还是太复杂了。延续开源社群有需要就创建工具的历史传统,Java 技术专家 Jason Hunter 和 Brett McLaughlin 缔造了 JDOM,这个 Java 库极大简化了 XML 文档的处理。
和 DOM 类似,JDOM 也提供一个对象树表示 XML 文档,但是这些对象工作的方式对 Java 程序员更直观。要记住,JDOM 在背后包含使用普通 SAX 或 DOM 解析器的适配器;JDOM 对所有主要的(和几个次要的) Java XML 解析器都提供了适配器,因此不必担心您的 Java XML 解析器是否支持 JDOM。JDOM 在幕后使用一个解析器不需要您的干涉。

如何选择解析器
我将在后面对此详加讨论,一般说来以下情况应使用 DOM 解析器:

需要详细了解文档的结构
需要改变文档的结构(也许您需要对元素排序、增加新的元素等等)
需要多次引用解析的信息

进一步推广,在以下情况中应使用 SAX 解析器:

内存少(就是说您的 机器[/i] 没有太多内存)
只需要 XML 文档中少量元素或属性
解析的信息只使用一次

最后看一看 JDOM API。JDOM 的内存使用比 DOM少,但是不如 SAX 好。此外,如果您希望进行验证(本教程中不再展开讨论),JDOM 要求您设置底层的解析器,JDOM 本身不进行验证。就是说,如果 JDOM 能够完成您所需要的所有功能,而且速度满足您的需要,它可以简化您的编码工作。
结论:JDOM结合了以上几种解析器,应用中简化,推荐。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: