Android SAX读取XML文件
来源:互联网 发布:新版本淘宝高级搜索 编辑:程序博客网 时间:2024/06/05 11:14
SAX解析器在解析XML输入的构件时就报告事件,但不会以任何方式存储文档。由事件处理器决定是否要建立数据结构。实际上,DOM解析器是在SAX解析器的基础上建立起来的,它在接收到解析器事件时建立DOM树。DOM相对于SAX,显得更加笨重,对小文件的读写,虽然没有什么分别,但是文件一大起来就难以想象了,如果在移动设备上使用,肯定会严重影响用户体验,而SAX却是一个轻量级的XML解析器,很适合在移动设备上使用!现在,让我来介绍一下SAX在Android设备上的使用方法:
第一步:首先建立一个getXML()的方法:
private void getXML(URL url) { try { SAXParserFactory spf = SAXParserFactory.newInstance();SAXParser sp = spf.newSAXParser();XMLReader xr = sp.getXMLReader();SAXHandler handler = new SAXHandler();xr.setContentHandler(handler);InputStreamReader isr = new InputStreamReader(url.openStream(), "UTF-8");InputSource is = new InputSource(isr);xr.parse(is); } catch(Exception e) { e.printStackTrace(); } }
第二步:当SAX解析器从本地或者从网络上的流读取到符合XML格式要求的内容,就会调用Handler类。SAX在android系统上提供了一个DefaultHandler的Handler子类,并且会自动调用这个DefaultHandler接口的相应方法!重写这个DefaultHandler接口,并命名为:SAXHandler:
import java.util.HashMap;import org.xml.sax.Attributes;import org.xml.sax.SAXException;import org.xml.sax.helpers.DefaultHandler;import android.util.Log;public class SAXHandler extends DefaultHandler{public void startDocument() throws SAXException{super.startDocument();}public void startElement(String uri, String localName, String name, Attributes attributes) throws SAXException{super.startElement(uri, localName, name, attributes);}public void characters(char ch[], int start, int length){}public void endElement(String uri, String localName, String name) throws SAXException{super.endElement(uri, localName, name);}public void endDocument() throws SAXException{ super.endDocument();}}
在使用SAX解析器时,需要一个处理器来定义不同的解析器事件的事件动作。DefaultHandler接口定义了若干个回调方法。从上面的代码上可以看出最重要的几个:
# startElement和endElement在每当遇到起始或终止标签时调用。
# characters每当遇到字符数据时调用。
# startDocument和endDocument分别在文档开始和结束时调用一次。
在这回调方法中,进行处理XML文件各个节点。
在此之后,在调用getXML()方法的适当位置添加如下代码便可:
URL url = new URL("http://www.----.com/----.xml"); getXML(url);
- Android SAX读取XML文件
- android 实用sax 读取xml文件内容
- Android --- 使用SAX读取xml文件
- android 实用sax 读取xml文件内容
- Android使用SAX读取XML文件内容
- android中使用SAX读取XML文件
- Android 使用SAX读取XML文件
- Android --- sax读取xml文件要点
- SAX 读取xml文件
- SAX读取XML文件
- 使用SAX读取XML文件
- 使用SAX读取XML文件
- SAX方式读取XML文件
- 使用SAX读取XML文件
- android 实用sax 读取xml文件内容 附源码
- Android sax引擎读取xml文件的原理
- 利用SAX解析读取XML文件
- Java读取XML文件之SAX篇
- opencv第三章习题2
- 基础总结篇之五:BroadcastReceiver应用详解
- 【SQL分享】字符串左对齐或右对齐显示
- IE6解决最小高度和最小宽度的问题
- tomcat下搭建简单的xfire web services项目
- Android SAX读取XML文件
- 有时候最困难的事情,就是坚持
- rational rose使用资料教程汇总
- tomcat和websphere下调用xfire web services
- mknod
- 打包程序如何生成程序下的资源目录
- c++内存的分布
- "_OBJC_CLASS_$_CALayer"问题解决
- mysql命令