sax解析

来源:互联网 发布:sql注入 or 编辑:程序博客网 时间:2024/06/07 10:20

simple api for java
采用顺序方式访问,比dom要快
首先要编写SAX解析器,继承default Handler 覆盖父类的方法

package sax;import org.xml.sax.*;import org.xml.sax.helpers.*;public class MySAX extends DefaultHandler {    public void startDocument() throws SAXException {        System.out.println("<?xml version=\"1.0\" encoding=\"GBK\">");    }    public void startElement(String uri, String localName, String qName, Attributes attributes) throws SAXException {        System.out.print("<");        System.out.print(qName);        if (attributes != null) { // 如果存在了属性            for (int x = 0; x < attributes.getLength(); x++) {                System.out.print(" " + attributes.getQName(x) + "=\"" + attributes.getValue(x) + "\"");            }        }        System.out.print(">");    }    public void endElement(String uri, String localName, String qName) throws SAXException {        System.out.print("<");        System.out.print(qName);        System.out.print(">");    }    public void characters(char[] ch, int start, int length) throws SAXException {        System.out.print(new String(ch, start, length));    }    public void endDocument() throws SAXException {        System.out.println("文档结束。。。");    }}

在main函数里面解析

package sax ;import java.io.* ;import javax.xml.parsers.* ;public class TestSAX {    public static void main(String args[]) throws Exception {        // 建立SAX解析工厂        File directory = new File("");//设定为当前文件夹         String basepath=directory.getAbsolutePath();        String path=basepath+"/xmlfile/sax_demo.xml";        SAXParserFactory factory = SAXParserFactory.newInstance() ;        SAXParser parser = factory.newSAXParser() ;        parser.parse(path,new MySAX()) ;    }}

可以看出,xml解析的编程步骤一般都是
1.获取factory
2.通过factory获取解析器parser
3.调用解析器的方法解析文档

1 0
原创粉丝点击