Android学习笔记 - XML篇
来源:互联网 发布:skytv软件下载 编辑:程序博客网 时间:2024/05/14 22:06
1.什么是SAX
DOM的原理:把一个XML文档当成树,完全加载到内存中,不适合大文件处理
SAX的原理:逐行进行XML文档的解析,适合大文件处理,但操作较复杂,且添加节点麻烦
SAX = Simple API for XML
2.SAX基本原理
顺序逐行扫描,当扫描到文档开始与结束、元素开始与结束触发事件,以事件为驱动。
相关事件:
1.在文档开始和结束的时候处理事件
2.在文档内每一个XML元素接受解析前后触发事件
3.任何元数据通常都由单独的事件交付
4.在处理文档的DTD或Schema时产生事件
5.发生错误时产生事件
相关类:
SAXParserFactory //SAX工厂类
SAXParser //SAX解析类
SAXReader //SAX读取类
ContentHandler //内容事件
ErrorHandler //错误事件
DTDHandler //DTD事件
EntityResolver //元素事件
解析过程:
<doc>
<para>Hello Android</para>
</doc>
start document
start element : doc
start element : para
characters : Hello Android
end element : para
end element : doc
end document
解析步骤:
1.创建事件处理程序
2.创建SAX解析器
3.将事件处理程序分配给解析器
4.对文档进行解析,将每个事件发送给处理程序
3.SAX常用接口
ContentHandler接口
void startDocument()
void endDocument()
void startElement(String uri, String localName, String qName, Attributes atts)
void endElement(String uri, String localName, String qName)
void characters(char[] ch, int start, int length)
4.SAX解析
String xml = new DownloadHelper().DownloadString("http://...");SAXParserFactory factory = SAXParserFactory.newInstance(); //创建工厂类XmlReader reader = factory.newSAXParser().getXmlReader(); //获取读取器reader.setContentHandler(new MyContentHandler());reader.parse(new InputSourse(new StringReader(xml)));public MyContentHandler extends DefaultHandler{public void startDocument() throws SAXException{System.out.println("start read...");}public void endDocument() throws SAXException{System.out.println("end read...");}public void startElement(String nsUri, String localName, String qName, Attributes atts) throws SAXException{//nsUri : 名字空间//localName : 节点名称//qName : 带前缀的节点名称//attr : 节点的属性if(localName.equals("worker")){for(int i=0; i<attr.getLength; i++){System.out.println(attr.getLocalName(i) + ":" + attr.getValue(i));}}}public void endElement() throws SAXException{}public void characters(char[] ch, int start, int length) throws SAXException{//ch 节点中的内容(InnerText)//start 从ch中的哪一位开始//length 长度String tmp = new String(ch, start, len);}}
- Android学习笔记 - XML篇
- 【Android学习笔记】XML存储
- 【Android学习笔记】XML解析
- Android学习笔记--XML解析
- Android学习笔记-XML处理
- Android XML布局学习笔记
- Android学习笔记:androidmanifest.xml 高级属性
- android学习笔记35--------------color.xml
- Android:/AndroidManifest.xml文件介绍 学习笔记
- Android学习笔记之AndroidManifest.xml文件
- Android学习笔记1:XML基础
- Android学习笔记--解析XML之SAX
- Android学习笔记02:AndroidManifest.xml源码
- android学习笔记16: SAX解析XML
- Android学习笔记:Pull解析XML
- android学习笔记4-xml解析
- android学习笔记-AndroidManifest.xml 文件总结
- Android 学习笔记之AndroidManifest.xml
- testimg
- Oracle分页查询
- 纽扣电池规格
- ASCII GBK UNICODE UCS-2 UCS-4 UTF-8 UTF-16 UTF-32 一次说个明白
- 关于Windows 7与Ubuntu启动的一些注记(win7屏蔽ubuntu的启动项)
- Android学习笔记 - XML篇
- windows linux双系统引导备份与恢复
- rpm安装Mysql的rpm包,提示/bin/sh is needed by MySql.rpm 错误的问题解决
- BT5上的无线破解
- c#进程间通信-接收消息
- GXT之旅:第七章:MVC——GXT MVC的相关类
- ITunes10.5.3.3无法打开ITunes Store的解决方法
- ASP.NET的@Page指令
- CFileFind类与CString类详述