SAX解析

  1. SAX解析是流解析器,使用的事件回调机制。内存中不会保存XML内容,因此只能读取,不能进行修改获取田间等操作。
  2. 事件接口:
public interface ContentHandler
{
   // 文档解析开始时,触发该回调
    public void startDocument () throws SAXException;
    // 文档解析完成后,触发该回调
    public void endDocument() throws SAXException;
	// 开始解析特定元素时,触发该事件
    public void startElement (String uri, String localName,  String qName, Attributes atts) throws SAXException;
    // 元素解析完成后,触发该事件
    public void endElement (String uri, String localName, String qName)  throws SAXException;
   // 解析到文本节点
    public void characters (char ch[], int start, int length)  throws SAXException;
}

一般不直接使用该接口,而是使用该接口的一个实现类DefaultHandler,只重写自己需要的事件函数即可。
3. 基本用法

	   // 获取工厂
        SAXParserFactory factory = SAXParserFactory.newInstance();
        // 获取解析器
		SAXParser parser = factory.newSAXParser();
		// 开始解析,需要两个参数,一个XML资源,一个事件处理器【匿名内部类】
		parser.parse(new File("src/test.xml"), new DefaultHandler(){
			
			// 重写了方法,localName表示节点的名称,不带命名空间和前缀等信息
			@Override
			public void startElement(String uri, String localName, String qName, Attributes attributes)
					throws SAXException {
				System.out.println(uri);
				System.out.println(localName);
				System.out.println(qName);
			}
		});
  1. 主要类以及接口说明
    1. SAXParserFactory: 解析器工厂
      一个静态方法:
      public static SAXParserFactory newInstance():获取工厂实例
      一个成员方法:
      public SAXParser newSAXParser(): 获取解析器
    2. SAXParser:解析器类:
      主要就是parse方法,需要两个参数,一个XML资源,一个处理器
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值