XML之SAX解析

package com.heilong.xml;
/**
 * xml SAX解析
 */
import javax.xml.parsers.ParserConfigurationException;
import javax.xml.parsers.SAXParser;
import javax.xml.parsers.SAXParserFactory;

import org.xml.sax.Attributes;
import org.xml.sax.SAXException;
import org.xml.sax.helpers.DefaultHandler;

/**
 * SAX解析
 * @author Admin
 *
 */

/**
 * SAX处理程序
 * void startDocument(); //在读到文档开始时调用
 * void endDocument(); //在读到文档结束时调用
 * void startElement(String url, String localName, String qName, Attributes attributes); //读到开始标签时时调用
 * void endElement(String url, String localName, String qName); //读到结束标签时调用
 * 
 * void characters(char[] ch, int start, int length); //读到文本内容时调用
 * @author Admin
 *
 */
class MyDefaultHandler extends DefaultHandler{
	
	/**
	 * 开始文档时带调用
	 */
	@Override
	public void startDocument() throws SAXException {
		System.out.println("MyDefaultHandler.startDocumen()t");
	}
	
	/**
	 * 开始标签时调用
	 * @param qName:表示开始标签的标签名
	 * @param attributes:表示开始标签内包含的属性列表
	 */
	@Override
	public void startElement(String uri, String localName, String qName,
			Attributes attributes) throws SAXException {
		System.out.println("MyDefaultHandler.startElement()-->"+qName);
	}
	
	/**
	 * 读到文本内容时调用
	 * @param ch:表示xml的所有文本内容
	 * @param start:表示当前文本内容的开始位置
	 * @param length:表示当前文本内容的长度
	 */
	@Override
	public void characters(char[] ch, int start, int length) throws SAXException {
		String content = new String(ch,start,length);
		System.out.println("MyDefaultHandler.characters()-->"+content);
	}
	
	/**
	 * 结束标签时调用
	 * @param qName:表示结束标签的标签名
	 */
	@Override
	public void endElement(String uri, String localName, String qName)
			throws SAXException {
		System.out.println("MyDefaultHandler.endElement()-->"+qName);
	}
	
	/**
	 * 结束文档时带调用
	 */
	@Override
	public void endDocument() throws SAXException {
		System.out.println("MyDefaultHandler.endDocument()");
	}
	
	
}

public class SaxParser {

	public static void main(String[] args) throws Exception {
		//1.创建SAXParser对象
		SAXParser parser = SAXParserFactory.newInstance().newSAXParser();
		
		//2.调用parse方法
		/**
		 * 参数1:xml文档
		 * 参数2:DefaultHandler的子类
		 */
		parser.parse("./src/contact.xml", new MyDefaultHandler());
	}
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值