当前位置:编程学习 > XML/UML >>

SAX解析XML

待解析的XML
 
 
Java代码 
<?xml version="1.0" encoding="utf-8"?> 
<musices> 
    <music> 
        <name>Hello</name> 
        <size>8622</size> 
    </music> 
    <music> 
        <name>World</name> 
        <size>2000</size> 
    </music> 
</musices>     
 
继承DefaultHandler
 
 
Java代码 
package cn.edu.xml; 
 
import org.xml.sax.Attributes; 
import org.xml.sax.SAXException; 
import org.xml.sax.helpers.DefaultHandler; 
 
public class MyXmlUtils extends DefaultHandler{ 
    private boolean isName=false; 
    private boolean isSize=false; 
     
    private String myname; 
    private String mysize; 
    @Override 
    public void characters(char[] ch, int start, int length) 
            throws SAXException { 
        // TODO Auto-generated method stub 
        super.characters(ch, start, length); 
        if(isName){ 
            myname=new String(ch,start,length); 
        } 
        if(isSize) 
        { 
            mysize=new String(ch,start,length); 
        } 
         
    } 
 
    @Override 
    public void endDocument() throws SAXException { 
        // TODO Auto-generated method stub 
        super.endDocument(); 
    } 
 
    @Override 
    public void endElement(String uri, String localName, String name) 
            throws SAXException { 
        // TODO Auto-generated method stub 
        super.endElement(uri, localName, name); 
    if(name.equals("name")){ 
        System.out.println(myname); 
    }else if(name.equals("size")){ 
        System.out.println(mysize);} 
    } 
 
    @Override 
    public void startDocument() throws SAXException { 
        // TODO Auto-generated method stub 
        super.startDocument(); 
     
    } 
 
    @Override 
    public void startElement(String uri, String localName, String name, 
            Attributes attributes) throws SAXException { 
        // TODO Auto-generated method stub 
        super.startElement(uri, localName, name, attributes); 
        if(name.equals("name")){ 
            isName=true; 
            System.out.println("one"); 
        } 
        else if(name.equals("size")){ 
            isSize=true; 
            System.out.println("second"); 
        } 
         
    } 
 

 
 
对XML进行解析
 
 
Java代码 
SAXParserFactory sf = SAXParserFactory.newInstance(); 
        SAXParser sp = sf.newSAXParser(); 
        MyXmlUtils reader = new MyXmlUtils(); 
        sp.parse(new File("E:\\music.xml"), reader); 

补充:软件开发 , Java ,
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,