android-文件解析-<八>
2015-02-16 09:17
295 查看
1.SAX
全称simple api for xml,即是一种接口,也是一个软件包,作为接口,SAX是事件驱动型XML解析的一个标准接口.
它是扫描一行的xml,并解析它,再扫描下一行并解析。
2.SAX的原理
[b]
[/b]
3.SAX实现读取一个字符串(内容为从网络下载后写入的字符)的代码步骤。
1.获取XMLReader:
2.为XMLReader 设置内容处理器。(该内容处理器类需要用另一个类继承重写里面的方法)
3.开始解析文件(用xmlreader的parse方法)
4.ContentHandler类(内容处理器)
全称simple api for xml,即是一种接口,也是一个软件包,作为接口,SAX是事件驱动型XML解析的一个标准接口.
它是扫描一行的xml,并解析它,再扫描下一行并解析。
2.SAX的原理
[b]
[/b]
3.SAX实现读取一个字符串(内容为从网络下载后写入的字符)的代码步骤。
1.获取XMLReader:
//创建一个SAXParserFactory SAXParserFactory factory = SAXParserFactory.newInstance(); XMLReader reader = factory.newSAXParser().getXMLReader();
2.为XMLReader 设置内容处理器。(该内容处理器类需要用另一个类继承重写里面的方法)
//为XMLReader设置内容处理器 reader.setContentHandler(new MyContentHandler());
3.开始解析文件(用xmlreader的parse方法)
//开始解析文件,resultStr就是我们要解析的字符串 reader.parse(new InputSource(new StringReader(resultStr)));
4.ContentHandler类(内容处理器)
//这里继承DefaultHandler,而不是ContentHandler原因是 //采用了适配器模式,我们需要用到ContentHandler某些方法 //不需要其他多余的方法,而DefaultHandler刚好给我们常用需要的方法,没有多余方法 public class MyContentHandler extends DefaultHandler { String hisname, address, money, sex, status; String tagName; public void startDocument() throws SAXException { System.out.println("````````begin````````"); } public void endDocument() throws SAXException { System.out.println("````````end````````"); } public void startElement(String namespaceURI, String localName, String qName, Attributes attr) throws SAXException { tagName = localName; if (localName.equals("worker")) { //获取标签的全部属性 for (int i = 0; i < attr.getLength(); i++) { System.out.println(attr.getLocalName(i) + "=" + attr.getValue(i)); } } } public void endElement(String namespaceURI, String localName, String qName) throws SAXException { //在workr标签解析完之后,会打印出所有得到的数据 tagName = ""; if (localName.equals("worker")) { this.printout(); } } public void characters(char[] ch, int start, int length) throws SAXException { if (tagName.equals("name")) hisname = new String(ch, start, length); else if (tagName.equals("sex")) sex = new String(ch, start, length); else if (tagName.equals("status")) status = new String(ch, start, length); else if (tagName.equals("address")) address = new String(ch, start, length); else if (tagName.equals("money")) money = new String(ch, start, length); } private void printout() { System.out.print("name: "); System.out.println(hisname); System.out.print("sex: "); System.out.println(sex); System.out.print("status: "); System.out.println(status); System.out.print("address: "); System.out.println(address); System.out.print("money: "); System.out.println(money); System.out.println(); } }
相关文章推荐
- AndroidManifest配置文件解析之二——<manifest>
- <2>Android HAL 发展。文件。两种架构。实例解析
- 深度分析:Android4.3下MMS发送到附件为音频文件(音频为系统内置音频)的彩信给自己,添加音频-发送彩信-接收彩信-下载音频附件-预览-播放(三,接收彩信<2,下载彩信>)
- IOS cocos2d学习笔记-<八>游戏关卡(Objective-C文件读写)
- android中对/data/data/<package name>/files下文件的读写操作
- 深度分析:Android4.3下MMS发送到附件为音频文件(音频为系统内置音频)的彩信给自己,添加音频-发送彩信-接收彩信-下载音频附件-预览-播放(二,发送彩信<2>)
- Android中View绘制优化二一---- 使用<include />标签复用布局文件
- 深度分析:Android4.3下MMS发送到附件为音频文件(音频为系统内置音频)的彩信给自己,添加音频-发送彩信-接收彩信-下载音频附件-预览-播放(三,接收彩信<1,接收短信>)
- 深度分析:Android4.3下MMS发送到附件为音频文件(音频为系统内置音频)的彩信给自己,添加音频-发送彩信-接收彩信-下载音频附件-预览-播放(二,发送彩信<1>)
- android 数据存储<一>----android短信发送器之文件的读写(手机+SD卡)
- <摘>android手机自带浏览器无法识别apk文件
- android 解析webservice List<Object> 填充下拉列表
- android中对/data/data/<package name>/files下文件的读写操作
- Android系统开发 - 扩展Androidmanifest.xml文件中<application>标签的属性
- Android 文件解析->解码->输出 的个人分析
- android中对/data/data/<package name>/files下文件的读写操作
- ASP.NET MVC 关于MasterPage中<script>标签的文件路径自动解析
- (转)Android中View绘制优化二一---- 使用<include />标签复用布局文件
- Android-01:扫描SD卡以<.xxx>结尾的文件
- 深度分析:Android4.3下MMS发送到附件为音频文件(音频为系统内置音频)的彩信给自己,添加音频-发送彩信-接收彩信-下载音频附件-预览-播放(二,发送彩信<2>)