转至繁体中文版     | 网站首页 | 图文教程 | 资源下载 | 站长博客 | 图片素材 | 武汉seo | 武汉网站优化 | 
最新公告:     敏韬网|教学资源学习资料永久免费分享站!  [mintao  2008年9月2日]        
您现在的位置: 学习笔记 >> 图文教程 >> 站长学院 >> Web开发 >> 正文
关于JAXP,DOM,SAX,JDOM,DOM4J的一些想法         ★★★★

关于JAXP,DOM,SAX,JDOM,DOM4J的一些想法

作者:闵涛 文章来源:闵涛的学习笔记 点击数:1836 更新时间:2009/4/23 10:51:04

关于JAXP,DOM,SAX,JDOM,DOM4J的一些想法

 

这些API是XSLT的关键部分,它们构建在DOM和SAX解析器基础上。

Sun在XML领域总是后知后觉,等到Sun重视XML的时候,XML的API早就满天 飞了,尤其是IBM具有非常大的领先优势。不过Sun是规范的制订者,于是参考W3C的标准制订了JAXP规范。JAXP不像Xerces和Crimon那样,它只是一个spec,本身是不做任何事情的,它的作用就是提出一个统一的接口,让其它的XML API都来遵循JAXP编程,那么用JAXP写出来的程序,底层的API可以任意切换。

具体来说JAXP包括了几个工厂类,这就是JDK1.4里面的javax.xml.parsers 包,用来寻找符合DOM标准的XML API实现类的位置;此外JAXP还包括一整套interface,这就是JDK1.4里面的org.w3c.dom那几个包。工厂类负责加载DOM的实现类。

当你严格采用JAXP编程的时候,是遵循W3C的DOm标准的,那么在JAXP底层你实际上可以任意切换不同的DOM实现,例如Xerces,或者Crimon,再或者其它,切换方法就是配置jaxp.properties。因此JAXP就是一些标准接口而已。

 
JAXP应用程序 -> JAXP接口 -> Xerces DOM实现 -> Xerces DOM/SAX 解析器
JAXP应用程序 -> JAXP接口 -> Crimson DOM实现 -> Crimson DOM/SAX 解析器
JAXP应用程序 -> JAXP接口 -> Crimson DOM实现 -> Xerces DOM/SAX 解析器

 

W3C的DOM标准API难用的让人想撞墙,于是有一帮人开发Java专用的XML API目的是为了便于使用,这就是jdom的由来,开发到一半的时候,另一部分人又分了出来,他们有自己的想法,于是他们就去开发dom4j,形成了今天这样两个API,至于他们之间的性能,功能之比较看看上面我推荐的文章就知道了,jdom全面惨败。

jdom 相当于上面的 JAXP接口 + Xerces DOM实现部分,它本身没有解析器,它可以使用Xerces或者Crimson的解析器

 

jdom应用程序 -> jdom API -> Xerces/Crimson解析器
dom4j应用程序 -> dom4j API -> Xerces/Crimson解析器
dom4j应用程序 -> dom4j API -> Alfred2解析器

 

因此可以看出采用dom4j/jdom编写的应用程序,已经不具备可移植性了。

Sun是JAXP标准的制订者,甚至很执著的在JDK1.4里面绑定Crimson DOM实现和解析器,然后可笑的是,Sun自己的JAXM RI竟然不是用JAXP写出来的,而是dom4j

 

我的举例:

1.  仅仅是XSL转换。XMLàHTML,通过XSL

Import javax.xml.transform.TransformerFactory;

Import javax.xml.transform.Transformer;

Import javax.xml.stream.StreamSource;

Import javax.xml.stream.StreamResult;

import java.io.FileOutputStream;

TransformerFactory transFactory = TransformerFactory.newInstance();

Transform transformer = transFacyory.newTransformer(new StreamSource(XMLSheetName));

Transformer.transform(new StreamSource(XMLFileName),new StreamResult(new FileOutputStream(outputURL)));

这里的stream是一个DOM对象。
我感觉这个就是JAXP应用程序 -> JAXP接口 -> Xerces DOM实现 -> Xerces DOM/SAX 解析器,不知道对不对。
 
2.遍历XML,通过DOM。不仅仅是XSL转换。中间有对XML元素内容的操作。

Import javax.xml.transform.TransformerFactory;

Import javax.xml.transform.Transformer;

Import javax.xml.stream.StreamSource;

Import javax.xml.stream.StreamResult;

import java.io.FileOutputStream;

//Xerces解析器来完成DOM遍历XML.DOMParser是Xerces包的一部分。

Import org.apache.xerces.parsers.DOMParser;

Import org.w3c.dom.Document;

Import org.w3c.dom.NodeList;

 

//DOM遍历XML

DOMParser parser = new DOMParser();

Parser.parse(XMLFileName);//解析并在内存中创建XML树。

Document document = parser.getDocument();//通过Document对象,可以使用内存中的树。

NodeList products = document.getElementByTagName(“product_id”);

Int num_products = products.getLength();

 

//XSL转化器

TransformerFactory transFactory = TransformerFactory.newInstance();

Transform transformer = transFacyory.newTransformer(new StreamSource(XMLSheetName));

Transformer.transform(new StreamSource(XMLFileName),new StreamResult(new FileOutputStream(outputURL)));

 

我感觉XSL转化和对XML对象的操作是两个过程。可以分别对待。最重要的是对对象的操作。这也就是为什么有DOM,JDOM,DOM4J。转化好像只需要JAXP就可以了,关心的是StreamSource和StreamResult。这两个是DOM对象。

 

[1] [2] [3]  下一页


[VB.NET程序]XML 简单接口 (SAX2)用Visual Basic 实现的示例  [网页制作]DOM 精简知识教程
[Web开发]Javascript+DOM访问XML文件数据实例  [Web开发][XML学习笔记][3.2]通过JAXP使用DOM
[Web开发][XML学习笔记][3.1]通过JAXP使用SAX  [JAVA开发]Java中文档对象模型DOM经验小结
教程录入:mintao    责任编辑:mintao 
  • 上一篇教程:

  • 下一篇教程:
  • 【字体: 】【发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口
      注:本站部分文章源于互联网,版权归原作者所有!如有侵权,请原作者与本站联系,本站将立即删除! 本站文章除特别注明外均可转载,但需注明出处! [MinTao学以致用网]
      网友评论:(只显示最新10条。评论内容只代表网友观点,与本站立场无关!)

    同类栏目
    · Web开发  · 网页制作
    · 平面设计  · 网站运营
    · 网站推广  · 搜索优化
    · 建站心得  · 站长故事
    · 互联动态
    更多内容
    热门推荐 更多内容
  • 没有教程
  • 赞助链接
    更多内容
    闵涛博文 更多关于武汉SEO的内容
    500 - 内部服务器错误。

    500 - 内部服务器错误。

    您查找的资源存在问题,因而无法显示。

    | 设为首页 |加入收藏 | 联系站长 | 友情链接 | 版权申明 | 广告服务
    MinTao学以致用网

    Copyright @ 2007-2012 敏韬网(敏而好学,文韬武略--MinTao.Net)(学习笔记) Inc All Rights Reserved.
    闵涛 投放广告、内容合作请Q我! E_mail:admin@mintao.net(欢迎提供学习资源)

    站长:MinTao ICP备案号:鄂ICP备11006601号-18

    闵涛站盟:医药大全-武穴网A打造BCD……
    咸宁网络警察报警平台