大道之行,天下为公。这篇文章主要讲述XML文件解析安卓7——SAX解析相关的知识,希望能为你提供帮助。
XML文件解析
XML解析:XML技术是android平台的应用基础,
Android提供了多种解析XML的方式:SAX解析、DOM解析、PULL解析
SAX解析
SAX ——Simple
API
forXML
(XML简单的API)
——解析速度快、占用内存少
——提供一组简单的API用于解析XML文件
——SAX在解析XML文件前,先指定一个解析事件处理器(Handler),SAX会对XML文档进行简单的顺序扫描,当扫描到【文档(Document)的开始和结束、元素(Element)的开始和结束的】标记Tag时,会给之前指定的解析事件处理器发送消息,由处理器来处理相应的事件。
当XML文档扫描完毕,则整个解析过程结束。
SAX解析方法
- 创建SAX解析器的工厂对象
- 创建SAXParser解析器对象
- XML文档开始时触发本方法
- XML文档结束时触发本方法
- 元素开始时触发本方法
- 元素开始时触发本方法
参数:
uri:命名空间
localName:不带命名空间的标签名
qName:带命名空间的标签名
attributes:所有属性和属性值
- 读到元素内容时,触发本方法
SAX解析代码 自定义xml文件存放到res/raw文件中
文章图片
文章图片
文章图片
1 public void onCreate(Bundle savedInstanceState) { 2super.onCreate(savedInstanceState); 3SAXParserFactory spf=SAXParserFactory.newInstance(); //SAX解析器的工厂对象 4try { 5SAXParser sp=spf.newSAXParser(); //SAX解析器对象 6//读取资源文件 7InputStream is=getResources().openRawResource(R.raw.book); 8//创建SAX事件处理器对象 9DefaultHandler dh=new DefaultHandler(){ 10private String name; 11public void startElement(String uri, String localName, 12String qName, Attributes attributes) 13throws SAXException { 14name=localName; 15} 16//获得内容 17public void characters(char[] ch, int start, int length) 18throws SAXException { 19if("name".equals(name)){//当标签名是name时,就去获得文本 20Toast.makeText(Sax0.thi s,new String(ch,start,length), 1000).show(); 21name=null; 22} 23} 24}; 25sp.parse(is, dh); 26} catch (ParserConfigurationException e) {e.printStackTrace(); 27} catch (SAXException e) {e.printStackTrace(); 28} catch (IOException e) {e.printStackTrace(); } 29}
SAX解析【XML文件解析安卓7——SAX解析】
推荐阅读
- 高级控件安卓6—— Gallery
- 基于Eclipse的Android JNI层測试应用开发过程记录
- 文件的读写安卓8
- SD卡操作安卓8
- Android计算器布局测试
- Android实战简易教程-第二十八枪(Uri转String型实例)
- android权限(permission)大全
- APP开发终结者来袭,快来体验吧!
- android Binder机制