DefaultHandler中方法解读

来源:互联网 发布:c语言中的 英文 编辑:程序博客网 时间:2024/04/30 20:11

java中的DafaultHandler是解析xml文件时的处理类。虽然很多处理中都是用自定义的handler去解析,但是也是继承DefaultHandler的。在DefaultHandler中有几个比较重要的方法。根据自己学习的经历体会如下:

public void startDocument() throws SAXException
第一个执行方法。
public void startElement(String uri, String localName, String qName,   Attributes attributes) throws SAXException
该方法是继第一个方法后第二个执行方法。
public void characters(char[] ch, int start, int length)   throws SAXException
这个是继startElement方法后的执行方法。
该方法中的ch把所解析的xml的所有数据都保存进来,且ch初始化为2K数据。 start是一个节点">"的位置。length就是">"到下一个"<"的长度。
public void endElement(String uri, String localName, String qName)   throws SAXException
若一个节点,比如<name>michael</name>,在执行完characters后会执行该方法。
如果节点,比如<names><name>michael</name></names>在执行names节点时,不会执行到该方法。
public void endDocument() throws SAXException
最后一个执行方法。

 

DefaultHandler类

  DefaultHandler类是SAX2事件处理程序的默认基类。它继承了EntityResolver、DTDHandler、ContentHandler和ErrorHandler这四个接口。包含这四个接口的所有方法,所以我们在编写事件处理程序时,可以不用直接实现这四个接口,而继承该类,然后重写我们需要的方法。如下:

  import org.xml.sax.*;

  import org.xml.sax.helpers.DefaultHandler;

  public class TestDefaultHandler extends DefaultHandler{

  public void startDocument() throws SAXException{

  System.out.println("开始解析!"); }

  public void endDocument() throws SAXException{

  System.out.println("解析完成!"); }

  public void startElement(String uri, String localName, String qName,

  Attributes atts) throws SAXException {

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

  }

  public void endElement(String uri, String localName, String qName)

  throws SAXException{

  System.out.println("对"+qName+"的解析完成!");

  }

  }

 

0 0
原创粉丝点击