XML之sax解析
XML之sax解析
monster_nian 发表于2年前
XML之sax解析
  • 发表于 2年前
  • 阅读 104
  • 收藏 2
  • 点赞 1
  • 评论 0

新睿云服务器60天免费使用,快来体验!>>>   

摘要: XML解析,SAX解析

XML解析有很多种方法,上次写了一个DOM的解析,这次写一个SAX解析,他们的优缺点在后面的总结中写!

别的先不说,先上代码!

XML:

<?xml version="1.0" encoding="GB2312"?>
<RESULT>
<VALUE>
   <NO>A1234</NO>
   <ADDR>四川省XX县XX镇XX路X段XX号</ADDR>
</VALUE>
<VALUE>
  <NO>B1234</NO>
   <ADDR>四川省XX市XX乡XX村XX组</ADDR>
</VALUE>
</RESULT>

java:

package www.yq.com.src;

import java.io.File;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.util.Stack;

import javax.xml.parsers.ParserConfigurationException;
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.XMLReader;
import org.xml.sax.helpers.DefaultHandler;

/** 
 * @Project     XMLSimpleTest 
 * @File        MyXmlReader.java 
 * @Package     www.yq.com.src 
 * @Date        2016年1月25日 下午4:34:38 
 * @Author      
 * @email       
 */
public class MyXmlReader extends DefaultHandler{
	Stack tags = new Stack();
	
	public static void main(String[] args) {
		File f = new File("E:\\qi.xml");
		SAXParserFactory saxParserFactory = SAXParserFactory.newInstance();
		SAXParser parser;
		try {
			parser = saxParserFactory.newSAXParser();
			MyXmlReader handler = new MyXmlReader();
			parser.parse(f, handler);
		} catch (ParserConfigurationException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		} catch (SAXException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		} catch (IOException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		
		
	}

	@Override
	public void characters(char[] ch, int start, int length)
			throws SAXException {
		super.characters(ch, start, length);
		String tag = (String) tags.peek();
		if(tag.equals("NO")){
			System.out.println("--------------");
			System.out.println("车牌号:"+new String(ch,start,length));
		}
		if(tag.equals("ADDR")){
			System.out.println("--------------");
			System.out.println("车牌地址:"+ new String(ch, start, length));
		}
	}

	@Override
	public void startElement(String uri, String localName, String qName,
			Attributes attributes) throws SAXException {
		super.startElement(uri, localName, qName, attributes);
		tags.push(qName);
	}
	

}

运行结果:

标签: XML解析 SAX解析
  • 打赏
  • 点赞
  • 收藏
  • 分享
共有 人打赏支持
粉丝 1
博文 12
码字总数 8312
×
monster_nian
如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!
* 金额(元)
¥1 ¥5 ¥10 ¥20 其他金额
打赏人
留言
* 支付类型
微信扫码支付
打赏金额:
已支付成功
打赏金额: