SAXParser解析xml

本文介绍如何使用SaxParser高效地解析XML文件。通过事件驱动的方式,逐步处理XML内容而无需一次性加载整个文件到内存中。文章详细展示了如何创建SAXParser对象并设置回调处理函数来读取特定节点。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

SaxParser用来读取xml文件,在读取xml的时候根据事件来回调处理函数,它本身不是全部读取xml文件到内存,因此效率较高,并且不会占用很多内存。

首先创建SaxParser对象,使用工厂方法创建:

SAXParserFactory.newInstance().newSAXParser();

 

需要给该对象添加回调对象:

sap.parse(new DefaultHandler()
      filename.openStream(), new DefaultHandler()
      {

             private int field1;
             private String field2;
             ............
             private Vector<Struct> fieldN;  
             @Override
             public void startElement(String uri, String localName, String qName, Attributes attributes){
                    if(qName.compareTo("tab1") == 0){
                               field1 = attributes.getValue("tab2");
                    }
                    else if(qName.compareTo("tab2") == 0){ 
                               fieldN = new Vector<Struct>();
                    }                    
                    ...................
             }
              @Override
              public void endElement(String uri, String localName, String qName){
                     if(qName.compareTo("tab1") == 0){
                                 fieldN.add(field1);
                                 field1 == 0;
                                 field2 == null;
                     }
                     if(qName.compareTo("tab2") == 0){
                                 processVector(fieldN);
                                  
                     }
              }
  }

);
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值