SAXParser解析xml

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);
                                  
                     }
              }
  }

);

你可能感兴趣的:(parser)