sax解析xml

来源:百度文库 编辑:神马文学网 时间:2024/04/28 06:15:38
import java.io.IOException;import javax.xml.parsers.SAXParser;
import javax.xml.parsers.SAXParserFactory;import org.xml.sax.Attributes;
import org.xml.sax.InputSource;
import org.xml.sax.SAXException;
import org.xml.sax.helpers.DefaultHandler;
public class ParseXml extends DefaultHandler{ private StringBuffer buffer;
 private String str;
 public ParseXml(){
  super();
 }
 @Override
 public void characters(char[] ch, int start, int length)
   throws SAXException {
  //将元素内容累加到StringBuffer中
  buffer.append(ch,start,length);
 }
 
 @Override
 public void startDocument() throws SAXException {
  buffer = new StringBuffer();
  System.out.println("********开始解析文档************");
 } @Override
 public void endDocument() throws SAXException {
  System.out.println("**********解析文档结束***********");
 } @Override
 public void startPrefixMapping(String prefix, String uri)
   throws SAXException {
  System.out.println("前缀映射"+prefix+" uri "+uri);
  
 }
 
 @Override
 public void endPrefixMapping(String prefix) throws SAXException {
  System.out.println("后缀映射"+prefix);
 }
 
 @Override
 public void startElement(String uri, String localName, String name,
   Attributes attributes) throws SAXException {
  System.out.println("******开始解析元素*******");
  System.out.println("元素名"+name);
  for (int i = 0; i < attributes.getLength(); i++) {
   System.out.println("元素名"+attributes.getLocalName(i)+" 属性值"+attributes.getValue(i));
  }
 } @Override
 public void endElement(String uri, String localName, String name)
   throws SAXException {
  str = buffer.toString();
  System.out.println("buffer="+buffer+" ||length="+buffer.length());
  buffer.delete(0, buffer.length());
  System.out.println("*******"+localName+"元素解析结束"+localName+"***********"+name);
 }
 
 public static void main(String[] args) {
  try{
            SAXParserFactory sf = SAXParserFactory.newInstance();
            SAXParser sp = sf.newSAXParser();
            ParseXml testsax=new ParseXml();
            sp.parse(new InputSource("s.xml"),testsax);
        }catch(IOException e){
            e.printStackTrace();
        }catch(SAXException e){
            e.printStackTrace();
        }catch(Exception e){
            e.printStackTrace();
        }
    }
}