专利名称:一种基于文档的hsml解析方法及系统的制作方法
技术领域:
本发明涉及数字家庭技术领域,具体涉及一种基于文档的HSML解析方法及系统。
技术背景
当今数字电视发展迅速,然而数字电视在互动业务方面仍存在不足。现存的数字 电视业务中,除视频点播、节目导视等传统的基本的互动业务外,其他互动业务较少,在电 视商务、信息服务等方面仍需加强。其主要原因是目前还缺乏一个针对数字电视互动业务 服务信息的规范,严重阻碍了平台提供商与众多内容服务提供商之间的信息对接。
数字电视交互服务标记语言(HSML)标准对XML语言进行扩展,制定针对数字电视 交互服务的标记语言,实现对面向三网融合的数字电视交互服务进行业务呈现及信息交互 描述,便于采用虚拟化技术对所需要的跨域共享与集成服务内容进行功能提取与抽象,用 以突破当前交互服务内容与数字电视平台高耦合度的这一瓶颈,实现数字电视产业高端增 值业务的高速发展。
在HSML解析引擎技术实现中,尚没有一种很好的解析方法适用于机顶盒的HSML 解析。而在XML通用标记语言解析方法中,有像DOM这种基于文档解析的方法,也有像SAX 这基于事件的解析方法。机顶盒在处理HSML语言时需要对HSML进行重复的操作,此时可 以采用DOM的基于文档的解析机制。
在对此方法的研究和实践过程中,本发明的发明人发现
如能实现一种方法,将类似于DOM解析引擎的基于文档的解析方法应用于机顶盒 解析机制中去,则能提高HSML解析效率,提高文档的可操作性。发明内容
本发明要解决的技术问题是提供一种基于文档的HSML解析方法及系统,能够提 高HSML的解析效率,也可提高文档的可操作性。
本发明提供的技术方案如下
一种基于文档的HSML解析方法,包括
DHSML解析引擎获取用户编写的HSML文档进行解析;
2) HSML解析引擎判断HSML文档是否错误,若是,转入步骤3)进行异常处理,否则 转入步骤4);
3)异常处理模块进行异常处理,并将错误信息返回给用户,使得用户根据错误信 息重新编写HSML文档;
4)根据HSML文档生成解析树;
5)对生成的解析树进行遍历;
6)判断是否结束对解析树的遍历,若否,继续对遍历树进行遍历,否则进入步骤 7);
7)释放内存,包括保存在内存中的生成的解析树。
可选的,所述对生成的解析树进行遍历,包括客户机的遍历和服务器的遍历。本发明还提供一种HSML解析系统所述HSML解析系统包括HSML解析机制模块、HSML解析引擎、HSML文档模块、树 对象模块;所述HSML解析机制模块,用于设置HSML解析机制,所述HSML解析机制遵循HSML 的组织结构,通过随机访问机制使得应用程序利用该接口访问HSML文档中的任数据;所述HSML解析引擎,用于加载HSML解析机制模块制定的解析规则,读取HSML文 档模块中的HSML文档进行解析,对所述树对像模块中的树对象进行操作;所述HSML文档模块,用于存储HSML文档;所述树对象模块,设置和存储树对象,所述树对象含有节点。可选的,所述树对象的节点包括根节点和子节点,每个节点含有各自属性。可选的,所述HSML解析引擎对树对象的操作,包括节点相关、属性相关、字符串转 化为HSML和Xpath搜索节点四个部分。可选的,所述HSML解析引擎对树对象的操作过程,包括获得树对象;在获得树对象之后,开始对树对象进行操作,包括获得树对象的节点,对这些节点 进行添加、删除和修改的操作;在获得对象节点后,获得节点的属性,对这些属性进行添加、删除和修改的操作。进行字符串与HSML之间的转换,包括将字符串转化为HSML和将文档或节点的 HSML转化为字符串。可选的,所述获得树对象,包括通过读取HSML文件,获得树对象,或者通过解析 HSML形式的文本得到树对象,或者主动创建树对象;上述技术方案可以看出由于本发明实施例采用一种基于文档的HSML解析方法,能够将类似于DOM解析弓| 擎的基于文档的解析方法应用于机顶盒HSML解析引擎中,在对HSML解析的过程中生成解 析树,然后可对解析树进行操作,这样能极高HSML的解析效率,也可提高文档的可操作性。
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现 有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本 发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以 根据这些附图获得其它的附图。图1是本发明的HSML解析系统的组织结构图;图2是本发明的基于文档解析的树结构图;图3是本发明的HSML解析流程图。
具体实施例方式下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完 整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其它 实施例,都属于本发明保护的范围。
本发明提供一种基于文档的HSML解析方法及系统,能够将类似于DOM解析引擎的 基于文档的解析方法应用于机顶盒HSML解析引擎中,在对HSML解析的过程中生成解析树, 然后可对解析树进行操作,这样能极高HSML的解析效率,也可提高文档的可操作性。
以下结合附图对本发明技术方案分别进行详细说明。
图1为本发明的HSML解析系统的组织结构示意图。
如图1所示,HSML解析系统的组织结构主要包括四个部分HSML解析机制模块、 HSML解析引擎、HSML文档模块、树对象模块。
HSML解析机制模块中设置的HSML解析机制遵循HSML的组织结构,在本发明 中,HSML解析机制通过一种随机访问机制,使得应用程序利用该接口可以在任何时候访问 HSML文档中的任何一部分数据,也可以对HSML文档中的数据进行插入、删除、修改、移动等 操作。
HSML解析引擎一方面读取HSML文档进行解析,另一方面加载HSML解析机制制定 解析规则。其中,HSML解析引擎包含树对象的操作,主要包括节点相关、属性相关、字符串 转化为HSML和Xpath搜索节点四个部分。
首先是获得树对象,有三种方法可以获得一是通过读取HSML文件,获得树对象; 二是通过解析HSML形式的文本,得到树对象;三是主动创建树对象。
在获得树对象之后,开始对树对象进行操作。首先是要获得树对象的节点,包括根 节点和子节点,也可以对这些节点进行添加、删除和修改的操作。
在获得对象节点后,要获得节点的属性。属性相关可以是获得节点下的某属性,也 可以遍历某节点的所有属性。也可以对这些属性进行添加、删除和修改的操作。
然后是字符串与HSML之间的转换。包括将字符串转化为HSML和将文档或节点的 HSML转化为字符串。
HSML文档模块,用于存储HSML文档;
树对象模块,用于设置和存储树对象,树对象含有节点,包括根节点和子节点。每 个节点含有各自属性。
为进一步说明本发明生成树的方法,现结合图2本发明的基于文档解析的树结构 图进行说明。
本发明的解析机制是一种基于树型的解析技术,它在内存中构建起一棵完整的解 析树,借此实现对整个HSML文档的全面、动态访问。
图2显示了本发明HSML解析模型的树型结构。
文档是所有DOM树的根,这个根有至少一个子节点,即根元素,另一个节点是文档 类型(DocumentType),用于DTD说明。根元素有子节点,其子节点还有自己的子节点。子节 点可以是元素、文本、注释、处理指令及其他类似信息。
本发明的解析引擎使用非常简单。用户可以随机地访问HSML文档,由于整个树都 构建在内存中,因此可以通过HSML API修改这些节点,例如增加一个子节点或修改、删除一 个节点。
通过图2,可以看到HSML解析引擎把HSML文档转化为一个包含其内容的树,并可以对树进行遍历。用此方法的解析模型的优点是编程容易,开发人员只需要调用建树的指 令,然后利用navigationAPIs访问所需的树节点来完成任务,可以很容易的添加和修改树 中的元素。然而,由于使用HSML解析引擎的时候需要处理整个HSML文档,所以对性能和内 存的要求比较高,尤其是遇到很大的HSML文件的时候。为进一步说明本发明的HSML解析方法,现结合HSML解析流程图来进一步说明。如图3所示,首先进入机顶盒系统,进行开发工作。1)开发人员开始开发工作,编写HSML文档。2)然后将HSML文档交给HSML解析引擎进行解析。3) HSML解析引擎判断HSML文档有没有错误,有错误则转入4)进行异常处理,否则 转入5)。4)发现文档有错误,交给系统的异常处理模块进行处理,并将错误信息返回给开 发人员,然后开发人员根据错误信息重新编写HSML文档。5) HSML解析引擎根据HSML文档生成解析树。6)HSML解析引擎对生成的解析树进行遍历,其中包括客户机的遍历和服务器的遍 历。首先可以在客户机上遍历生成的HSML树,比如,客户机可能需要确定是否存在特 定名称的Node等;然后在服务器上肯定会需要操纵树,比如在一个Node中增加新的孩子寸。7) HSML解析引擎判断是否结束对解析树的遍历,不结束的话可继续对遍历树进行 遍历,结束的话则进入下一步。8)释放内存,包括保存在内存中的生成的解析树。9)结束。综上所述由于本发明实施例采用一种基于文档的HSML解析方法,能够将类似于DOM解析弓| 擎的基于文档的解析方法应用于机顶盒HSML解析引擎中,在对HSML解析的过程中生成解 析树,然后可对解析树进行操作,这样能极高HSML的解析效率,也可提高文档的可操作性。需要说明的是,上述装置和系统内的各单元之间的信息交互、执行过程等内容,由 于与本发明方法实施例基于同一构思,具体内容可参见本发明方法实施例中的叙述,此处 不再赘述。本领域普通技术人员可以理解上述实施例的各种方法中的全部或部分步骤是可 以通过程序来指令相关的硬件来完成,该程序可以存储于一计算机可读存储介质中,存 储介质可以包括只读存储器(ROM,Read Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁盘或光盘等。以上对本发明实施例所提供的一种基于文档的HSML解析方法及系统,进行了详 细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说 明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据 本发明的思想,在具体实施方式
及应用范围上均会有改变之处,综上所述,本说明书内容不 应理解为对本发明的限制。
权利要求
1.一种基于文档的HSML解析方法,其特征在于,包括1)数字电视交互服务标记语言HSML解析引擎获取用户编写的HSML文档进行解析;2)HSML解析引擎判断HSML文档是否错误,若是,转入步骤3)进行异常处理,否则转入 步骤4);3)异常处理模块进行异常处理,并将错误信息返回给用户,使得用户根据错误信息重 新编写HSML文档;4)根据HSML文档生成解析树;5)对生成的解析树进行遍历;6)判断是否结束对解析树的遍历,若否,继续对遍历树进行遍历,否则进入步骤7);7)释放内存,包括保存在内存中的生成的解析树。
2.根据权利要求1所述的基于文档的HSML解析方法,其特征在于 所述对生成的解析树进行遍历,包括客户机的遍历和服务器的遍历。
3.一种HSML解析系统,其特征在于,所述HSML解析系统包括 HSML解析机制模块、HSML解析引擎、HSML文档模块、树对象模块;所述HSML解析机制模块,用于设置HSML解析机制,所述HSML解析机制遵循HSML的组 织结构,通过随机访问机制使得应用程序访问HSML文档中的任数据;所述HSML解析引擎,用于加载HSML解析机制模块制定的解析规则,读取HSML文档模 块中的HSML文档进行解析,对所述树对像模块中的树对象进行操作; 所述HSML文档模块,用于存储HSML文档; 所述树对象模块,用于设置和存储树对象,所述树对象含有节点。
4.根据权利要求3所述的HSML解析系统,其特征在于所述树对象的节点包括根节点和子节点,每个节点含有各自属性。
5.根据权利要求3或4所述的HSML解析系统,其特征在于所述HSML解析引擎对树对象的操作,包括节点相关、属性相关、字符串转化为HSML和 Xpath搜索节点四个部分。
6.根据权利要求5所述的HSML解析系统,其特征在于 所述HSML解析引擎对树对象的操作过程,包括获得树对象;在获得树对象之后,开始对树对象进行操作,包括获得树对象的节点,对这些节点进行 添加、删除和修改的操作;在获得对象节点后,获得节点的属性,对这些属性进行添加、删除和修改的操作。 进行字符串与HSML之间的转换,包括将字符串转化为HSML和将文档或节点的HSML转 化为字符串。
7.根据权利要求6所述的HSML解析系统,其特征在于所述获得树对象,包括通过读取HSML文件,获得树对象,或者通过解析HSML形式的文 本得到树对象,或者主动创建树对象。
全文摘要
本发明公开一种基于文档的HSML解析方法及系统。该方法包括1)HSML解析引擎获取用户编写的HSML文档进行解析;2)判断HSML文档是否错误,若是,转入3),否则转入4);3)异常处理模块进行异常处理,并将错误信息返回给用户,使得用户根据错误信息重新编写HSML文档;4)根据HSML文档生成解析树;5)对生成的解析树进行遍历;6)判断是否结束对解析树的遍历,若否,继续对遍历树进行遍历,否则进入7);7)释放内存,包括保存在内存中的生成的解析树。本发明技术方案能够将类似于DOM解析引擎的基于文档的解析方法应用于机顶盒HSML解析引擎中,能提高HSML的解析效率,也可提高文档的可操作性。
文档编号H04L29/06GK102033905SQ20101052878
公开日2011年4月27日 申请日期2010年10月29日 优先权日2010年10月29日
发明者朱建宝, 罗笑南, 钟浩清, 陈任 申请人:广东星海数字家庭产业技术研究院有限公司