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

编程接口

  • 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 解析器:

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

    最后看一看 JDOM API。JDOM 的内存使用比 DOM少,但是不如 SAX 好。此外,如果您希望进行验证(本教程中不再展开讨论),JDOM 要求您设置底层的解析器,JDOM 本身不进行验证。就是说,如果 JDOM 能够完成您所需要的所有功能,而且速度满足您的需要,它可以简化您的编码工作。

    结论:JDOM结合了以上几种解析器,应用中简化,推荐。

     

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值