SAX解析XML

2014-11-24 02:08:34 · 作者: · 浏览: 0

待解析的XML


Java代码
< xml version="1.0" encoding="utf-8" >


Hello
8622


World
2000



继承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);