|
技巧:从SAX转换--使用SAX来与那些需要DOM和JDOM输入的应用通信广告 技巧:从SAX转换
Enhydra 策略顾问,Lutris Technologies 2001 年 4 月 Brett McLaughlin 解释了如何使用 SAX 来与那些需要 DOM 和 JDOM 输入的应用通信。这是一个很有用的技术:随着令人激动的 XML API 的出现,开发人员现在能够很容易移来移去。样本代码提供了一个从 SAX 到 JDOM 转换的具体示例。 SAX 是最好的东西。它迅速、灵巧,而且使您听起来很酷:您是 SAX 程序员。然而其他许多人目前并不是 SAX 程序员,因为 DOM 和 JDOM 使您很容易处理某些任务。(直说吧,SAX 有时不太稳定!)让我们假设您要从正在使用的 SAX 格式中提取 XML 数据并将它们转换成其它开发人员编写程序所需的格式 -- 即,很可能是 DOM 或 JDOM。在本文中,将展示如何从 SAX 转换成 DOM 和 JDOM。然而,这在技术上是不切实际的:我实际上将解释 SAX 与 DOM 或 JDOM 是如何不同,以及如何将 SAX 与其它 API 一起使用。 从 SAX 到 DOM 拿 Apache Xerces 作为示例。DOMParser 和 SAXParser 类实际上是一个单类 org.apache.xerces.framework.XMLParser 的扩展。parse() 方法是在超类中定义的,而不是在每个子类中,这意味着在每个子类中是以相同方式进行语法分析。换句话说,当您将 parse() 方法用于 SAX 或 DOM 时,会调用相同的代码。主要的区别是 DOMParser 类会调用一个附加方法,getDocument(), 它在分析完成后返回 DOM 树。所以,虽然您不能明确地从 SAX “转换”到 DOM,但每次在您使用语法分析器时,它都有可能发生,只是您不知道罢了! 从 SAX 到 JDOM 清单 1. 从 SAX 到 JDOM 的转换 // Java imports // JDOM imports public class SAXtoJDOM { // XML file to read public SAXtoJDOM(File file) { public Document convert() throws JDOMException,
IOException { public static void main(String[] args) { // Output the document to System.out } 现在您应该已经了解。从 SAX 转换成 DOM 或从 SAX 转换成 JDOM 稍微有点用词不当。但用 SAX 来构建 DOM 和 JDOM 树是非常简单的,因为它们俩都使用 SAX 这个“幌子”。有了这个提示在手,您现在已变得更加聪明,真的可以向您的朋友炫耀了! 参考资料 请访问 SAX 的发源地,Dave Megginson 的 SAX 页面。在那里您会找到已发布的下载、历史和一些已知的错误以及其它一些内容。 查找更多有关 JDOM 的内容,包括项目概述、下载和到邮件列表的链接。 探寻整个 DOM 世界,从 DOM 上的 W3C 页面开始。 在 developerWorks 下的 XML 专区,查找最近其它的提示: 移动 DOM
节点(不触发 使用 SAX 和 SAX helper 类来实现供应商独立性 关于作者 如果您希望与本文章的作者或其所在机构,进一步交流,请联系:畅享网 姜小姐 jill.jiang@amt.com.cn | 021-51096826-112 | 在线联系 |
CIO职场,强者生存?在2008年,我们将继续看到CIO向商业运营方向发展。与此同时,我们也会看到商业管理人员将与技术管理人员一起竞争CIO岗位。 IT领导者的就职机会虽有不少,但其难度将会大幅提高。2…… |
|
|