四种解析xml总结

本文介绍了四种XML解析方式:DOM、SAX、JDOM和DOM4J,并对比了它们的特点及适用场景。DOM将XML文件加载到内存中形成树状结构,适合小型文件;SAX采用事件驱动方式,适用于大型文件;JDOM简化了API使用;DOM4J在性能上更优,被广泛应用于开源项目。
摘要由CSDN通过智能技术生成

    xml解析分为SAX,DOM,JDOM,DOM4J四种:
    dom:把xml文件读到内存中去,并生成树型结构,以后访问只要在树节点中找就行,由于要把xml解
析到内存中去,所以不能解析操作10M的文件
    sax:基于事件驱动,文档的开始结束,元素开始结束节点遍历,对文档只能遍历一次,但能解析大
型xml文件,速度比dom快,欠缺的是用SAX 解析器的时候编码工作会比较困难,而且很难同时访问同一个文档中的多处不同数据。
     jdom:利用"Java 规范请求 JSR-102",与 DOM 主要有两方面不同。首先,JDOM 仅使用具体类而
不使用接口。这在某些方面简化了 API,但是也限制了灵活性。第二,API 大量使用了 Collections 类,简化了那些已经熟悉这些类的 Java 开发者的使用。
     dom4j:使用接口和抽象基本类方法,大量使用了 API 中的 Collections 类,因为JDOM 和 DOM
在性能测试时表现不佳,在测试 10M 文档时内存溢出,而各方面dom4j都由于他们,现在许多开源项目都使用了dom4j,比如hibernate对xml的解析.
      但到目前为止我还是热衷用dom解析xml,解析步骤如下:
      //创建文档构建工厂
     DocumentBuilderFactory factory=DocumentBuilderFactory.newInstance();
     //创建文档构建器
    DocumentBuilder builder=factory.newDocumentBuilder();
    //创建文档对象,解析指定的文件
 Document doc = builder.parse(new File(fileName));
    //根据tagName创建节点列表
 NodeList nl = doc.getElementsByTagName(tagName);
    //循环遍历
 for (int i=0;i<nl.getLength();i++){ 
         String str = doc.getElementsByTagName(tagName).item (i).getFirstChild 
 ().getNodeValu();
   }

    详情参考:http://www.it.com.cn/f/edu/053/27/93819.htm

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值