SAX解析XML文档
2016-04-11 14:36
281 查看
SAX解析工具是由Sun公司提供的,内置在jdk中:org.xml.sax.*
核心的API:
SAXParser类: 用于读取和解析xml文件对象
parse(File f, DefaultHandler dh)方法: 解析xml文件
参数一: File:表示 读取的xml文件。
参数二: DefaultHandler: SAX事件处理程序。使用DefaultHandler的子类
例如:
1.创建SAXParser对象
SAXParser parser=SAXParserFactory.newInstance().newSAXParser();
2.调用parse方法
parser.parse(new File(“./src/contact.xml”), new MyDefaultHandler(){});
一个类继承class 类名(extends DefaultHandler)
在调用时创建传进去
DefaultHandler类的API:
void startDocument() :
在读到文档开始时调用
void endDocument() :
在读到文档结束时调用
void startElement(String uri, String localName, String qName, Attributes attributes) :
读到开始标签时调用
void endElement(String uri, String localName, String qName) :
读到结束标签时调用
void characters(char[] ch, int start, int length) :
读到文本内容时调用
========= DOM解析 vs SAX解析 ========
DOM解析
原理: 一次性加载xml文档,不适合大容量的文件读取
DOM解析可以任意进行增删改成
DOM解析任意读取任何位置的数据,甚至往回读
DOM解析面向对象的编程方法(Node,Element,Attribute),Java开发者编码比较简单。
SAX解析
原理: 加载一点,读取一点,处理一点。适合大容量文件的读取
SAX解析只能读取,不能修改删除
SAX解析只能从上往下,按顺序读取,不能往回读
SAX解析基于事件的编程方法,java开发编码相对复杂
核心的API:
SAXParser类: 用于读取和解析xml文件对象
parse(File f, DefaultHandler dh)方法: 解析xml文件
参数一: File:表示 读取的xml文件。
参数二: DefaultHandler: SAX事件处理程序。使用DefaultHandler的子类
例如:
1.创建SAXParser对象
SAXParser parser=SAXParserFactory.newInstance().newSAXParser();
2.调用parse方法
parser.parse(new File(“./src/contact.xml”), new MyDefaultHandler(){});
一个类继承class 类名(extends DefaultHandler)
在调用时创建传进去
DefaultHandler类的API:
void startDocument() :
在读到文档开始时调用
void endDocument() :
在读到文档结束时调用
void startElement(String uri, String localName, String qName, Attributes attributes) :
读到开始标签时调用
void endElement(String uri, String localName, String qName) :
读到结束标签时调用
void characters(char[] ch, int start, int length) :
读到文本内容时调用
========= DOM解析 vs SAX解析 ========
DOM解析
原理: 一次性加载xml文档,不适合大容量的文件读取
DOM解析可以任意进行增删改成
DOM解析任意读取任何位置的数据,甚至往回读
DOM解析面向对象的编程方法(Node,Element,Attribute),Java开发者编码比较简单。
SAX解析
原理: 加载一点,读取一点,处理一点。适合大容量文件的读取
SAX解析只能读取,不能修改删除
SAX解析只能从上往下,按顺序读取,不能往回读
SAX解析基于事件的编程方法,java开发编码相对复杂
相关文章推荐
- docker(1):virtualbox 安装CoreOS系统,配置registry-mirror
- android:windowSoftInputMode性能问题&输入法弹出时闪现前一个界面的东西
- cactiez v11添加对mysql数据库、apache系统进行监控
- Retrieving the COM class factory for component with CLSID {00024500-0000-0000-C000-000000000046} failed due to the following error: 80070005
- 你去饭店,坐下来...
- NOIP 过河问题 月黑风高的夜晚
- Java中的桥方法
- Android WebView的Js对象注入漏洞解决方案
- 26进制---Excel Sheet Column Number
- Ejabberd源码学习——启动流程
- 欢迎使用CSDN-markdown编辑器
- C# XML与Json之间相互转换实例详解
- 兴趣爱好-喜欢的博客或网站
- LInux系统 CPU信息查看
- $.fn $.fn.extend $.extend的区别
- 开启phpMyAdmin高级功能的设置方法
- 定制RPM包并加入内部Yum Server
- javaer to go之简单的ORM封装
- OpenGL ES 三种类型修饰 uniform attribute varying
- memorycache清理