天天看點

java sax 解析 xml

代碼:

java sax 解析 xml

import org.xml.sax.Attributes;

java sax 解析 xml

import org.xml.sax.SAXException;

java sax 解析 xml

import org.xml.sax.Locator;

java sax 解析 xml

import org.xml.sax.ContentHandler;

java sax 解析 xml

import org.xml.sax.InputSource;

java sax 解析 xml

import org.xml.sax.helpers.DefaultHandler;

java sax 解析 xml

import java.io.IOException;

java sax 解析 xml

import javax.xml.parsers.SAXParser;

java sax 解析 xml

import javax.xml.parsers.SAXParserFactory;

java sax 解析 xml
java sax 解析 xml
java sax 解析 xml

class TestSAX extends DefaultHandler{

java sax 解析 xml
java sax 解析 xml

    private StringBuffer buf;

java sax 解析 xml

    private String str;

java sax 解析 xml

    public TestSAX(){

java sax 解析 xml

        super(); 

java sax 解析 xml

    }

java sax 解析 xml
java sax 解析 xml

//    public void setDocumentLocator(Locator locator){}

java sax 解析 xml
java sax 解析 xml

    public void startDocument() throws SAXException{

java sax 解析 xml

        buf=new StringBuffer();

java sax 解析 xml

        System.out.println("*******開始解析文檔*******");

java sax 解析 xml
java sax 解析 xml
java sax 解析 xml

    public void endDocument() throws SAXException{        

java sax 解析 xml

        System.out.println("*******文檔解析結束*******");

java sax 解析 xml
java sax 解析 xml
java sax 解析 xml

    public void startPrefixMapping( String prefix, String uri ){

java sax 解析 xml

        System.out.println(" 字首映射: " + prefix +" 開始!"+ " 它的URI是:" + uri);

java sax 解析 xml
java sax 解析 xml
java sax 解析 xml

    public void endPrefixMapping( String prefix ){

java sax 解析 xml

        System.out.println(" 字首映射: "+prefix+" 結束!");

java sax 解析 xml
java sax 解析 xml
java sax 解析 xml

//    public void processingInstruction( String target, String instruction )throws SAXException{}

java sax 解析 xml
java sax 解析 xml

//    public void ignorableWhitespace( char[] chars, int start, int length ) throws SAXException {}

java sax 解析 xml
java sax 解析 xml

//    public void skippedEntity( String name ) throws SAXException {}

java sax 解析 xml
java sax 解析 xml

    public void startElement(String namespaceURI,String localName,String qName,Attributes atts){

java sax 解析 xml

        System.out.println("*******開始解析元素*******");    

java sax 解析 xml

        System.out.println("元素名"+qName);        

java sax 解析 xml

        for(int i=0;i<atts.getLength();i++){

java sax 解析 xml

            System.out.println("元素名"+atts.getLocalName(i)+"屬性值"+atts.getValue(i));

java sax 解析 xml

        }

java sax 解析 xml
java sax 解析 xml
java sax 解析 xml

    public void endElement(String namespaceURI,String localName,String fullName )throws SAXException{

java sax 解析 xml

//        buf.trimToSize();

java sax 解析 xml

        str = buf.toString(); 

java sax 解析 xml

        System.out.println("buf = "+buf+" || length = "+buf.length());

java sax 解析 xml

        System.out.println("str = "+str.trim()+" || length = "+str.trim().length());

java sax 解析 xml

        buf.delete(0,buf.length());

java sax 解析 xml

        System.out.println("******"+namespaceURI+"元素解析結束"+localName+"********"+fullName);

java sax 解析 xml
java sax 解析 xml
java sax 解析 xml

    public void characters( char[] chars, int start, int length )throws SAXException{

java sax 解析 xml

        //将元素内容累加到StringBuffer中 

java sax 解析 xml

        buf.append(chars,start,length);

java sax 解析 xml
java sax 解析 xml
java sax 解析 xml

    public static void main(String args[]){

java sax 解析 xml

        try{

java sax 解析 xml

            SAXParserFactory sf = SAXParserFactory.newInstance();

java sax 解析 xml

            SAXParser sp = sf.newSAXParser();

java sax 解析 xml

            TestSAX testsax=new TestSAX();

java sax 解析 xml

            sp.parse(new InputSource("test1.xml"),testsax);

java sax 解析 xml

        }catch(IOException e){

java sax 解析 xml

            e.printStackTrace(); 

java sax 解析 xml

        }catch(SAXException e){

java sax 解析 xml
java sax 解析 xml

        }catch(Exception e){

java sax 解析 xml
java sax 解析 xml
java sax 解析 xml
java sax 解析 xml

}

xml檔案,我讀的時候有錯誤,用了自己的,希望其他人比我幸運!

java sax 解析 xml

<?xml version="1.0" encoding="GB2312"?>

java sax 解析 xml

<row>

java sax 解析 xml

<person>

java sax 解析 xml

<name>王小明</name>

java sax 解析 xml

<college>資訊學院</college> 

java sax 解析 xml

<telephone>6258113</telephone>

java sax 解析 xml

<notes>男,1955年生,博士,95年調入海南大學</notes>

java sax 解析 xml

</person>

java sax 解析 xml

</row>