[发明专利]克服android平台SAX解析错误的方法无效
申请号: | 201310636216.2 | 申请日: | 2013-12-03 |
公开(公告)号: | CN103699375A | 公开(公告)日: | 2014-04-02 |
发明(设计)人: | 顾微微 | 申请(专利权)人: | 青岛海尔软件有限公司 |
主分类号: | G06F9/44 | 分类号: | G06F9/44 |
代理公司: | 北京一格知识产权代理事务所(普通合伙) 11316 | 代理人: | 滑春生;赵永伟 |
地址: | 266112 山东省青*** | 国省代码: | 山东;37 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 克服 android 平台 sax 解析 错误 方法 | ||
技术领域
本发明涉及一种克服android平台SAX解析错误的方法,适用于android系统应用程序开发领域,在应用开发过程中如果涉及到XML文件的解析,SAX解析是一种方式,解析过程中可能会遇到解析错误的情况,本技术针对解析时获取标签数据不全的问题提供了一种解决技术方案。
背景技术
XML是W3C制定的一组规范,用来定义标记语言,其主要优点是可扩展性,从它的诞生到现在,已经得到了人们广泛的支持与应用。
所谓XML文件的解析是指:把代表XML文档的一个无结构的字符序列转换为满足XML语法的结构化组件的过程。
SAX(Simple API for XML)XML简单应用程序接口是一个公共的基于事件的XML文档解析标准。它以事件作为解析XML文件的模式,它将XML文件转化成一系列的事件,由不同的事件处理器来决定如何处理。
SAX的工作原理简单地说就是对文档进行顺序扫描,当扫描到文档(document)开始与结束、元素(element)开始与结束、文档(document)结束等地方时通知事件处理函数,由事件处理函数做相应动作,然后继续同样的扫描,直至文档结束。
SAX是一种占用内存少且解析速度快的解析器,它采用的是事件启动,它不需要解析完整个文档,而是按照内容顺序 看文档某个部分是否符合xml语法,如果符合就触发相应的事件,所谓的事件就是些回调方法(callback),这些方法 定义在ContentHandler中。下面是其主要方法:
startDocument:当遇到文档的时候就触发这个事件 调用这个方法 可以在其中做些预处理工作。
startElement: (String namespaceURI,String localName,String qName,Attributes atts)当遇开始标签的时候就会触发这个方法。
endElement(String uri,String localName,String name):当遇到结束标签时触发这个事件,调用此法可以做些善后工作。
charachers(char [] ch,int start,int length):当遇到xml内容时触发这个方法,用new String(ch,start,length)可以接受内容。
……。
一般情况下,上面的解析过程是没有问题的,解析会正确执行。但是,偶尔会发生错误,一般都认为SAX 解析过程大致如下:
startDocument -> startElement -> characters -> endElement -> endDocument;
startElement读取起始标签,endElement读取结束标签,characters 呢?是读取其值,这没错,但是一般都以为 characters 只执行一次,并且一次就读取了全部内容。错就错在这!
characters 是很有可能会执行多次的,在解析<url>http://img7.ph.126.net/xthf6CciOopDhbEj2nPB3A==/6598208860702643437.jpg</url>时,就曾发现characters执行了两次,将内容http://img7.ph.126.net/xthf6CciOopDhbEj2nPB3A==/6598208860702643437.jpg分两次读取, 用上面那种方式的最终结果就是 url = http://img7.ph.126.net/xthf6CciOopDhbEj2nPB3A==/6598了,那应用中使用这个URL地址读取图片时就会出错。
发明内容
本发明目的是提供一种克服android平台SAX解析错误的方法,在于解决android平台应用中使用SAX解析XML遇到的解析数据不全的问题。
本发明的技术方案是:以智能操作系统android为基础,以SAX为解析XML技术方式。整体解决思路为将XML的解析后的数据进行对应的正确的拼接,从而使解析后的数据完整。
本发明的优点是:决了android平台下应用开发过程中用SAX解析XML数据不全的问题,使得开发者可以使用本发明从XML数据中获取完整的数据。
具体实施方式
本发明的实施方法包括以下步骤:
(a) 使用StringBuilder作为接收元素值的存储器;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于青岛海尔软件有限公司,未经青岛海尔软件有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201310636216.2/2.html,转载请声明来源钻瓜专利网。
- 上一篇:盘管换热器及风机盘管机组
- 下一篇:围框关节结构及具有其的儿童游戏围框