java解析xml四种方式(2)-SAX方式
来源:互联网 发布:金山数据恢复和 编辑:程序博客网 时间:2024/06/05 11:25
java解析xml四种方式(2)-SAX方式
为解决DOM的问题,出现了SAX。SAX ,事件驱动。当解析器发现元素开始、元素结束、文本、文档的开始或结束等时,发送事件,程序员编写响应这些事件的代码,保存数据。
优点:不用事先调入整个文档,占用资源少;SAX解析器代码比DOM解析器代码小,适于Applet,下载。
缺点:不是持久的;事件过后,若没保存数据,那么数据就丢了;无状态性;从事件中只能得到文本,但不知该文本属于哪个元素;
使用场合:Applet;只需XML文档的少量内容,很少回头访问;机器内存少;
package com.michael.xml.sax;import org.xml.sax.Attributes;import org.xml.sax.SAXException;import org.xml.sax.helpers.DefaultHandler;/** * @author michael * */public class MySAXHandler extends DefaultHandler {boolean hasAttribute = false;Attributes attributes = null;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 attributes) throws SAXException {if (qName.equals("employees")) {return;}if (qName.equals("employee")) {System.out.println(qName);}if (attributes.getLength() > 0) {this.attributes = attributes;this.hasAttribute = true;}}public void endElement(String uri, String localName, String qName)throws SAXException {if (hasAttribute && (attributes != null)) {for (int i = 0; i < attributes.getLength(); i++) {System.out.println(attributes.getQName(0)+ attributes.getValue(0));}}}public void characters(char[] ch, int start, int length)throws SAXException {System.out.println(new String(ch, start, length));}}
package com.michael.xml.sax;import java.io.FileInputStream;import java.io.FileNotFoundException;import java.io.IOException;import java.io.InputStream;import javax.xml.parsers.ParserConfigurationException;import javax.xml.parsers.SAXParser;import javax.xml.parsers.SAXParserFactory;import org.xml.sax.SAXException;import com.michael.xml.dom.XmlDocument;/** * @author michael SAX文档解析 */public class SaxDemo implements XmlDocument {public void createXml(String fileName) {System.out.println("----" + fileName + "---");}public void parserXml(String fileName) {SAXParserFactory saxfac = SAXParserFactory.newInstance();try {SAXParser saxparser = saxfac.newSAXParser();InputStream is = new FileInputStream(fileName);saxparser.parse(is, new MySAXHandler());} catch (ParserConfigurationException e) {e.printStackTrace();} catch (SAXException e) {e.printStackTrace();} catch (FileNotFoundException e) {e.printStackTrace();} catch (IOException e) {e.printStackTrace();}}public static void main(String[] args) {SaxDemo demo = new SaxDemo();// demo.createXml("d:/michael_sax.xml");demo.parserXml("d:/michael.xml");}}
0 0
- java解析xml四种方式(2)-SAX方式
- java解析xml(sax方式)
- Java解析XML文件的四种方式之SAX解析
- [Android]四种方式解析字符串----JSON、SAX、DOM、XML
- [Android]四种方式解析字符串----JSON、SAX、DOM、XML
- [Android]四种方式解析字符串----JSON、SAX、DOM、XML
- XML的四种解析方式之SAX
- [Android]四种方式解析字符串----JSON、SAX、DOM、XML
- DOM,SAX,JDOM,DOM4J 四种方式解析xml
- DOM,SAX,JDOM,DOM4J 四种方式解析xml
- 解析xml的四种方式:DOM JDOM DOM4J SAX
- SAX方式解析XML
- SAX方式解析XML
- XML解析-SAX方式
- java 解析xml的四种方式:sax,dom,dom4j,jdom
- java解析xml的几种方式 SAX解析
- JAVA SAX 方式解析XML文件
- JAVA SAX 方式解析XML文件
- 第十二工作总结与计划
- SQL使用单引号
- 黑马程序员----------java基础知识(2)
- 设计模式学习--------7.工厂方法模式学习
- C#中json转为xml源码(转)
- java解析xml四种方式(2)-SAX方式
- 避免SQL注入三大方法
- 输出指定序列的前面第N个序列
- FireMoneky Windows下的消息管理器组件
- Linux smaps接口文件结构
- Android平台调用Web Service:线程返回值
- 状态机编程实例及适用范围
- socketpair
- 利用Python快速做LCD阴阳码转换(按位取反)