一种解析数据的方法

文档序号:6607961阅读:328来源:国知局
专利名称:一种解析数据的方法
技术领域
本发明涉及数据解析领域,特别涉及一种解析数据的方法。
背景技术
目前XML数据的解析包括以下两种主流技术DOM技术,其是用与平台和语言无关的方式表示XML文档的官方W3C标准。 DOM是以层次结构组织的节点或信息片断的集合,这个层次结构允许开发人员在树中寻 找特定信息。分析该结构通常需要加载整个文档和构造层次结构,然后才能处理XML 文档中的数据。由于它是基于信息层次的,因而DOM被认为是基于树或基于对象的。 DOM解析器把XML文档转化为一个包含其内容的树,并可以对树进行遍历。用DOM 解析模型的优点是编程容易,开发人员只需要调用建树的指令,然后访问所需的树节点 来完成任务。可以很容易的添加和修改树中的元素。然而由于使用DOM解析器的时候 需要处理整个XML文档,所以对性能和内存的要求比较高,尤其在手机等嵌入式系统中 很难满足其要求。SAX技术,其是一个用于处理XML事件驱动的“推”模型,虽然它不是W3C 标准,但它也是一个得到了广泛认可的API。SAX解析器不像DOM那样建立一个完整 的文档树,而是在读取文档时激活一系列事件,这些事件被推给事件处理器,然后由事 件处理器提供对文档内容的访问。SAX对内存的要求通常会比较低,因为它让开发人员 自己来决定所要处理的tag。但用SAX解析器的时候编码工作会比较困难,同时处理效 率也非常低,而且很难同时访问同一个文档中的多处不同数据。在手机等嵌入式系统中,已经非常广地使用XML文档备份数据。这些备份数据 通常都需要整个文档解析,而手机等嵌入式系统的内存资源又十分紧张,因此以上两种 解析方式都不能很好的满足需求。

发明内容
本发明的目的是提供一种解析数据的方法,其能高效的实现手机XML数据的解 析。本发明提供一种解析数据的方法,其适用于手机中的XML数据解析,包括以下 步骤1.1、根据预定需求确定所述XML数据中的必要元素节点,并将其设置为标志元 素节点;1.2、解析所述XML数据,在解析过程中,对所述XML数据的声明节点和标志 元素节点进行解析;1.3、通过应用程序处理已解析的数据;1.4、释放所述XML数据的声明节点以及标志元素点所占用的手机内存。所述步骤1.2包括以下步骤
2.1、判断解析的是否为所述XML数据的声明节点,若是则直接解析,若否则转 下一步骤;2.2、判断其是否为所述XML数据的元素节点,若是则转下步骤,若否则直接丢 弃;2.3、继续判断其是否为所述XML数据的标志元素节点,若是则进行解析,若不 是则直接丢弃。所述步骤1.2中解析所述XML数据的关键字包括“< xml”、“? >”、 “<tag>” 和 “</tag>”、< ! [CDATA[string]]>,其中 tab 为任意符合 XML 标签规范的
字符串,string为任意字符串。所述XML数据的节点包括声明节点、包含标志元素节点的元素节点以及所述声 明节点和元素节点之外的节点。采用本发明所述的一种解析数据的方法,其首先根据预定需求确定所述XML数 据中的必要元素节点,并将其设置为标志元素节点;其次解析所述XML数据,在解析过 程中,对所述XML数据的声明节点和标志元素节点进行解析;然后通过应用程序处理已 解析的数据;最后释放所述XML数据的声明节点以及标志元素点所占用的手机内存。


图1为本发明所述方法的流程图;图2为本发明一实施例中的解析XML数据时生成的节点树。
具体实施例方式
下面结合附图和实施例进一步说明本发明的技术方案。参见图1,本发明提供一种解析数据的方法100,其适用于手机中的XML数据解 析,包括以下步骤1.1、根据预定需求确定所述XML数据中的必要元素节点,并将其设置为标志元 素节点。所述XML数据的节点包括声明节点、包含标志元素节点的元素节点以及所述声 明节点和元素节点之外的节点。1.2、解析所述XML数据,在解析过程中,对所述XML数据的声明节点和标志 元素节点进行解析。最为一实施例,所述步骤1.2包括以下步骤2.1、判断解析的是否为所述XML数据的声明节点,若是则直接解析,若否则转
下一步骤。2.2、判断其是否为所述XML数据的元素节点,若是则转下步骤,若否则直接丢弃。2.3、继续判断其是否为所述XML数据的标志元素节点,若是则进行解析,若不 是则直接丢弃。所述步骤1.2中解析所述XML数据的关键字包括“< ? xml”、“? >”、 “<tag>” 和 “</tag>”、< ! [CDATA[string]]>,其中 tab 为任意符合 XML 标签规范的
字符串,string为任意字符串。
1.3、通过应用程序处理已解析的数据。1.4、释放所述XML数据的声明节点以及标志元素点所占用的手机内存。下面通过一具体实施例来进行详细说明手机联系人的备份文件的电话本条目重复出现,例如图2中的格式的手机联系 人备份文件phoneBook.xml < ? xml version=" 1.0〃 encoding = “ UTF—8" ? >< !-手机联系人备份一><PhoneBook><PhoneBookField><N> 张三 </N><TEL>011-7777777</TEL><HOMETEL>01 l-7777788</HOMETEL>
<WORKTEL>01 l-8888888</WORKTEL><EMAIL>xxx@hotmai. com</EMAIL><POSTCODE>200000</POSTCODE><COMPANY>xx-company</COMPANY><DEPARTMENT>xx-department</DEPARTMENT><TITLE>CTO</TITLE><ADDRESS>上海市黄浦区北京东路XXX号</ADDRESS〉</PhoneBookField><PhoneBookField><TEL>021 -xxxxxx</TEL>
<HOMETEL>02 l-xxxxxx</HOMETEL><WORKTEL>011 -xxxxxx</WORKTEL><EM AIL>xxx@hotmai. com</EM AIL><POSTCODE>200001</P0STC0DE><COMPANY>xx-company</COMPANY><DEPARTMENT>xx-department</DEPARTMENT><TITLE>CTO</TITLE><ADDRESS>上海市黄浦区北京东路XXX号〈/ADDRESS〉</PhoneBookField></PhoneBook>针对该XML数据的解析过程见下第一步,根据具体XML数据和特定的应用要求确定需要解析的标志元素节 点。假设此时之需要<\¥01001£1>和<£1^八11>,则标志元素节点为<PhoneBook>、 <PhoneBookField>> <N>、<WORKTEL> 禾Π <EMAIL>。第二步,需要读入文件phoneBook.xml的字节流,给解析器传入标志元素节点 <PhoneBook>、<PhoneBookField>> <N>、<WORKTEL> 禾Π <EMAIL>。参见图 2,解析
器会生成图2中的一颗节点树。在解析过程中解析器忽略了 “其他类型节点” <! 一手机联系人备份一>,也忽略了非标志元素节点<TEL>、<HOMETEL>、<POSTCODE>、 〈COMPANY〉、〈DEPARTMENT〉、<TITLE> 和〈ADDRESS〉。第三步,在应用程序中处理已解析的数据。第四步,释放标志声明节点和标志元素节点所占用的内存。本技术领域中的普通技术人员应当认识到,以上的实施例仅是用来说明本发 明,而并非用作为对本发明的限定,只要在本发明的实质精神范围内,对以上实施例的 变化、变型都将落在本发明的权利要求书范围内。
权利要求
1.一种解析数据的方法,其适用于手机中的XML数据解析,其特征在于,包括以下 步骤1.1、根据预定需求确定所述XML数据中的必要元素节点,并将其设置为标志元素节点。1.2、解析所述XML数据,在解析过程中,对所述XML数据的声明节点和标志元素 节点进行解析;1.3、通过应用程序处理已解析的数据;1.4、释放所述XML数据的声明节点以及标志元素点所占用的手机内存。
2.如权利要求1所述的方法,其特征在于,所述步骤1.2包括以下步骤2.1、判断解析的是否为所述XML数据的声明节点,若是则直接解析,若否则转下一 步骤;2.2、判断其是否为所述XML数据的元素节点,若是则转下步骤,若否则直接丢弃;2.3、继续判断其是否为所述XML数据的标志元素节点,若是则进行解析,若不是则直接丢弃。
3.如权利要求2或3所述的方法,其特征在于,所述步骤1.2中解析所述XML 数据的关键字包括“〈? xml”、“? >”、“<tag>” 和 “</tag>”、< ! [CDATA[string]]>,其中tab为任意符合XML标签规范的字符串,string为任意字符串。
4.如权利要求3所述的方法,其特征在于,所述XML数据的节点包括声明节点、包 含标志元素节点的元素节点以及所述声明节点和元素节点之外的节点。
全文摘要
本发明揭示了一种解析数据的方法,其适用于手机中的XML数据解析,首先根据预定需求确定所述XML数据中的必要元素节点,并将其设置为标志元素节点;其次解析所述XML数据,在解析过程中,对所述XML数据的声明节点和标志元素节点进行解析;然后通过应用程序处理已解析的数据;最后释放所述XML数据的声明节点以及标志元素点所占用的手机内存。
文档编号G06F17/22GK102012895SQ20101025768
公开日2011年4月13日 申请日期2010年8月19日 优先权日2010年8月19日
发明者付波 申请人:上海酷吧信息技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1