解析XML之SAX
来源:互联网 发布:怎么把电脑变成数据库 编辑:程序博客网 时间:2024/05/22 12:58
简述
SAX的全称是Simple APIs for XML,也即XML简单应用程序接口SAX API是一个基于事件的APISAX分析XML时触发一系列事件,并激活相应的事件处理函数,应用程序通过这些事件处理函数实现对XML文档的访问,因而SAX也被称作事件驱动SAX API主要的四种处理事件的接口ContentHandlerDTDHandlerEntityResolverErrorHandler优缺点当解析器发现元素开始,元素结束,文本,文档的开始或结束等时,发送事件,程序员编写响应这些事件的代码,保存数据优点:不用事先调入整个文档,占用资源少;SAX解析器代码比DOM解析器代码小使用场合Applet下载缺点:不是持久的,事件过后,若没保存数据,那么数据就丢了;无状态性,从事件中只能得到文本,但不知该文本属于哪个元素;使用场合只需XML文档的少量内容,很少回头访问;机器内存少
解析XML
<?xml version="1.0" encoding="UTF-8"?><students> <student no="1001"> <name>lwc</name> <sex>boy</sex> <age>18</age> </student> <student no="1002"> <name>lwc</name> <sex>boy</sex> <age>18</age> </student></students>
案例
package com.itlwc.action;import java.io.File;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;class MyHandler extends DefaultHandler {@Overridepublic void startDocument() throws SAXException {System.out.println("parse began");}@Overridepublic void endDocument() throws SAXException {System.out.println("parse finished");}@Overridepublic void startElement(String uri, String localName, String qName,Attributes attributes) throws SAXException {System.out.println("start element : " + qName);}@Overridepublic void endElement(String uri, String localName, String qName)throws SAXException {System.out.println("finish element : " + qName);}}public class TestSax {public static void main(String[] args) throws Exception {// 获得SAX解析器工厂实例SAXParserFactory factory = SAXParserFactory.newInstance();// 获得SAX解析器实例SAXParser parser = factory.newSAXParser();// 开始进行解析parser.parse(new File("student.xml"), new MyHandler());}}/*打印结果:parse beganstart element : studentsstart element : studentstart element : namefinish element : namestart element : sexfinish element : sexstart element : agefinish element : agefinish element : studentstart element : studentstart element : namefinish element : namestart element : sexfinish element : sexstart element : agefinish element : agefinish element : studentfinish element : studentsparse finished*/
0 0
- 解析xml之--SAX
- 解析xml之--SAX
- 解析xml之--SAX
- XML解析之SAX
- XML 解析之SAX
- XML解析之SAX
- 【xml之SAX解析】
- XML解析之SAX
- 解析XML之SAX
- xml之SAX解析
- xml之sax解析
- xml解析之sax
- XML解析之SAX
- xml解析之SAX
- XML之sax解析
- XML解析之SAX
- xml之SAX解析
- Xml之Sax解析
- Maximum Depth of Binary Tree leetcode
- 中文分词
- 三年程序学习之三:(失业了)
- Using Charles Proxy to Optimize Mobile App Performance(手机抓包工具)
- Matlab GUI常用对象之text
- 解析XML之SAX
- String s=new String("abc")创建了几个对象?
- hdu1008 Elevator
- 解析XML之JDOM
- hdu 4929 Another Letter Tree(LCA+DP)
- PyQt简介
- 解析XML之DOM4J
- 黑马程序员_交通灯管理系统
- 辛苦了, 老婆.