SAX解析XML文件实例代码

import java.io.File;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;

import javax.xml.parsers.ParserConfigurationException;
import javax.xml.parsers.SAXParser;
import javax.xml.parsers.SAXParserFactory;

import org.xml.sax.Attributes;
import org.xml.sax.SAXException;
import org.xml.sax.helpers.DefaultHandler;

public class XMLTest extends DefaultHandler {

    public void startDocument() throws SAXException{
        System.out.println("<?xml version='1.0' encoding='UTF-8' ?>");
    }
    public void processingInstruction(String target ,String data) throws SAXException{
        System.out.println("<?"+target+" "+data+"?>");
    }
    public void startElement(String uri,String localName,
            String qName,Attributes attrs)throws SAXException {
        System.out.print("<"+qName);
        int len=attrs.getLength();
        for(int i=0;i<len;i++){
            System.out.print(" ");
            System.out.print(attrs.getQName(i));
            System.out.print("=\"");
            System.out.print(attrs.getValue(i));
            System.out.print("\"");
        }
        System.out.print(">");
        List list=new ArrayList();
    }
    public void characters(char[] ch,int start,
            int length)throws SAXException {
        System.out.println(new String(ch,start,length));
    
    }
    public void endElement(String uri,String localName,
            String qName)throws SAXException {
        System.out.println("</"+qName+">");
    
    }
    public static void main(String[] args) {
        SAXParserFactory sdf=SAXParserFactory.newInstance();
        SAXParser sp=null;
        try {
            sp=sdf.newSAXParser();
            //aa.xml里面必须有数据,可以解析出来里面的内容
            File f=new File("c:/aa.xml");
            sp.parse(f,new XMLTest());
        } catch (ParserConfigurationException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        } catch (SAXException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
        
    }
}

 

posted @ 2014-06-05 12:03  石奈子0314  阅读(267)  评论(0编辑  收藏  举报