信息文档的处理方法及装置.pdf

上传人:a**** 文档编号:1027408 上传时间:2018-03-26 格式:PDF 页数:25 大小:905.52KB
返回 下载 相关 举报
摘要
申请专利号:

CN201010519870.1

申请日:

2010.10.19

公开号:

CN102004722A

公开日:

2011.04.06

当前法律状态:

终止

有效性:

无权

法律详情:

未缴年费专利权终止IPC(主分类):G06F 17/22申请日:20101019授权公告日:20130821终止日期:20161019|||专利权的转移IPC(主分类):G06F 17/22变更事项:专利权人变更前权利人:北京红旗中文贰仟软件技术有限公司变更后权利人:中企动力科技股份有限公司变更事项:地址变更前权利人:100176 北京市北京经济技术开发区(亦庄)西环南路18号汇龙森A座2层变更后权利人:100176 北京市经济技术开发区地盛西路1号1幢A区5层A2-501室登记生效日:20150811|||授权|||实质审查的生效IPC(主分类):G06F 17/22申请日:20101019|||公开

IPC分类号:

G06F17/22

主分类号:

G06F17/22

申请人:

北京红旗中文贰仟软件技术有限公司

发明人:

曾良军; 李恒

地址:

100176 北京市北京经济技术开发区(亦庄)西环南路18号汇龙森A座2层

优先权:

专利代理机构:

北京派特恩知识产权代理事务所(普通合伙) 11270

代理人:

张颖玲;王黎延

PDF下载: PDF下载
内容摘要

本发明公开了一种信息文档的处理方法和装置,所述方法包括:A、将可扩展标记语言(XML)文档标签信息映射到可由下标访问的XML文档向量模型中;B、依据滞后处理策略信息,通过下标访问并处理所述XML文档向量模型的结构元素,其中对于需要滞后处理的信息暂不处理,记录该滞后处理信息的下标;C、根据步骤B中记录的需要滞后处理信息的下标,访问并处理所述XML文档向量模型中对应的结构元素。所述装置用于执行上述方法。利用本发明,可以加快XML文档返回处理结果的速度,提高软件的执行效率,减少用户等待XML文档处理结果的时间。

权利要求书

1.一种信息文档的处理方法,其特征在于,该方法包括:A、将可扩展标记语言XML文档标签信息映射到可由下标访问的XML文档向量模型中;B、依据滞后处理策略信息,通过下标访问并处理所述XML文档向量模型的结构元素,其中对于需要滞后处理的信息暂不处理,记录该滞后处理信息的下标;C、根据步骤B中记录的需要滞后处理信息的下标,访问并处理所述XML文档向量模型中对应的结构元素。2.根据权利要求1所述的方法,其特征在于,所述步骤A中,将所述XML文档中的每一个标签所包含的信息对应映射到XML文档向量模型的一个结构元素中,其中一个标签映射的结构元素包含有以下内容信息:1)当前标签在XML文档中的顺序编号;2)当前标签到包含此标签的父标签顺序编号的距离;3)当前标签包含的子标签个数;4)当前标签的标签名;5)当前标签的属性信息;6)当前标签包含的起始文本内容;7)当前标签包含的结束文本内容。3.根据权利要求2所述的方法,其特征在于,所述步骤A以基于事件驱动分析处理的方式进行处理,具体包括以下事件驱动处理过程:起始文档事件驱动处理:建立或清理一个可以通过下标访问的数据结构作为所述XML文档向量模型,初始化当前处理标签下标;起始标签事件驱动处理:构建一个新标签的结构元素,并对该新结构元素的顺序编号、该新标签到父标签顺序编号的距离、该新结构元素的标签名称以及属性进行赋值,并将该新建的结构元素加入到可用下标访问的数据结构中,变更当前处理下标为当前结构元素的顺序编号;内容处理事件驱动处理:判断当前遇到的内容是起始内容还是结束内容,如是起始内容,将对当前元素结构的起始内容赋值,否则对当前元素结构的结束内容赋值;结束标签事件驱动处理:对当前处理结构元素的包含子元素数赋值,并将当前处理结构元素的父元素下标赋给当前处理标签下标。4.根据权利要求1所述的方法,其特征在于,所述步骤B具体包括:B1、将所述XML文档向量模型的第一个结构元素作为当前结构元素,构建该结构元素对应的处理上下文作为当前处理上下文;B2、在当前处理上下文中进行当前结构元素起始阶段的处理;B3、在当前处理上下文中进行当前结构元素起始内容的处理,并为当前子结构元素下标赋值;B4、判断当前子结构元素下标是否在当前结构元素的子结构元素范围内,如果是则进入到步骤B9,否则进入到步骤B5;B5、在当前处理上下文中进行当前结构元素对应的结束内容的处理;B6、在当前处理上下文中进行当前结构元素对应的结束阶段的处理;B7、判断当前结构元素是否为根结构元素,如果是则结束本流程,否则进入步骤B8;B8、将当前子结构元素下标设为当前结构元素的兄弟结构元素下标,并返回到当前结构元素的父结构元素的处理上下文中,进入步骤B4;B9、依据预设的处理策略信息,判断当前子结构元素是否可以滞后处理,如果是则进入步骤B10,否则进入步骤B11;B10、记录当前子结构元素下标的值,之后将当前子结构元素下标的值改为下一子结构元素位置,进入步骤B4;B11、将当前处理上下文进行相应的处理,将当前子结构元素作为当前处理结构元素,并构建当前处理结构元素对应的处理上下文作为当前处理上下文,返回步骤B2。5.根据权利要求1或4所述的方法,其特征在于,步骤B中所述的滞后处理策略信息包括:判断当前处理的信息是否为后继处理过程中的必须项,如果不是必须项,且不是同等级信息中的首项,则可滞后处理。6.根据权利要求1所述的方法,其特征在于,所述步骤C中,针对每个所记录的滞后处理信息,分别执行如下步骤:C1、将所记录的滞后处理信息的下标作为当前子结构元素下标,将该子结构元素对应父结构的处理上下文作为当前处理上下文;C2、将当前的子结构元素下标作为当前结构元素下标,并构建该结构元素对应的处理上下文作为当前处理上下文;C3、在当前处理上下文中进行当前结构元素起始阶段的处理;C4、在当前处理上下文中进行当前结构元素起始内容的处理,并为当前子结构元素下标赋值;C5、判断当前子结构元素下标是否在当前结构元素的子结构元素范围内,如果是则进入到步骤C2,否则进入到步骤C6;C6、在当前处理上下文中进行当前结构元素对应的结束内容的处理;C7、在当前处理上下文中进行当前结构元素对应的结束阶段的处理;C8、判断当前结构元素下标是否为步骤C1所述的滞后处理信息的下标;如果是则结束本流程。否则进入步骤C9;C9、将当前子结构元素下标设为当前结构元素的兄弟结构元素下标,并返回到当前结构元素的父结构元素的处理上下文中,返回步骤C5。7.根据权利要求1、4或6所述的方法,所述步骤B中,对于可滞后处理的信息,进一步记录该滞后处理信息的父结构的处理上下文信息,并在步骤C中直接利用所记录的上下文信息处理对应的结构元素。8.一种信息文档的处理装置,其特征在于,该装置包括:第一模块,用于将可扩展标记语言XML文档标签信息映射到可由下标访问的XML文档向量模型中;第二模块,用于依据滞后处理策略信息,通过下标访问并处理所述XML文档向量模型的结构元素,其中对于需要滞后处理的信息暂不处理,记录该滞后处理信息的下标;第三模块,用于根据第二模块中记录的需要滞后处理信息的下标,访问并处理所述XML文档向量模型中对应的结构元素。9.根据权利要求8所述的装置,其特征在于,所述第一模块具体包括以下事件驱动处理模块:起始文档事件驱动处理模块,用于建立或清理一个可以通过下标访问的数据结构作为所述XML文档向量模型,初始化当前处理标签下标;起始标签事件驱动处理模块,用于构建一个新标签的结构元素,并对该新结构元素的顺序编号、该新标签到父标签顺序编号的距离、该新结构元素的标签名称以及属性进行赋值,并将该新建的结构元素加入到可用下标访问的数据结构中,变更当前处理下标为当前结构元素的顺序编号;内容处理事件驱动处理模块,用于判断当前遇到的内容是起始内容还是结束内容,如是起始内容,将对当前元素结构的起始内容赋值,否则对当前元素结构的结束内容赋值;结束标签事件驱动处理模块,用于对当前处理结构元素的包含子元素数赋值,并将当前处理结构元素的父元素下标赋给当前处理标签下标。10.根据权利要求8所述的装置,其特征在于,所述第二模块具体包括以下子模块:第B1子模块,用于将所述XML文档向量模型的第一个结构元素作为当前结构元素,构建该结构元素对应的处理上下文作为当前处理上下文;第B2子模块,用于在当前处理上下文中进行当前结构元素起始阶段的处理;第B3子模块,用于在当前处理上下文中进行当前结构元素起始内容的处理,并为当前子结构元素下标赋值;第B4子模块,用于判断当前子结构元素下标是否在当前结构元素的子结构元素范围内,如果是则进入到第B9子模块,否则进入到第B5子模块;第B5子模块,用于在当前处理上下文中进行当前结构元素对应的结束内容的处理;第B6子模块,用于在当前处理上下文中进行当前结构元素对应的结束阶段的处理;第B7子模块,用于判断当前结构元素是否为根结构元素,如果是则结束本流程,否则进入第B8子模块;第B8子模块,用于将当前子结构元素下标设为当前结构元素的兄弟结构元素的下标,并返回到当前结构元素的父结构元素的处理上下文中,进入第B4子模块;第B9子模块,用于依据预设的处理策略信息,判断当前子结构元素是否可以滞后处理,如果是则进入第B10子模块,否则进入第B11子模块;第B10子模块,用于记录当前子结构元素下标的值,之后将当前子结构元素下标改为下一子结构元素位置,进入第B4子模块;第B11子模块,用于将当前处理上下文进行相应的处理,将当前子结构元素作为当前处理结构元素,并构建当前处理结构元素对应的处理上下文作为当前处理上下文,返回第B2子模块。11.根据权利要求8所述的装置,其特征在于,所述第三模块具体包括以下子模块:第C1子模块,用于将所记录的某滞后处理信息的下标作为当前子结构元素下标,将该子结构元素对应父结构的处理上下文作为当前处理上下文;第C2子模块,用于将当前的子结构元素下标作为当前结构元素下标,并构建该结构元素对应的处理上下文作为当前处理上下文;第C3子模块,用于在当前处理上下文中进行当前结构元素起始阶段的处理;第C4子模块,用于在当前处理上下文中进行当前结构元素起始内容的处理,并为当前子结构元素下标赋值;第C5子模块,用于判断当前子结构元素下标是否在当前结构元素的子结构元素范围内,如果是则进入到第C2子模块,否则进入到第C6子模块;第C6子模块,用于在当前处理上下文中进行当前结构元素对应的结束内容的处理;第C7子模块,用于在当前处理上下文中进行当前结构元素对应的结束阶段的处理;第C8子模块,判断当前结构元素下标是否为第C1子模块所处理的滞后处理信息的下标;如果是则结束本流程。否则进入第C9子模块;第C9子模块,用于将当前子结构元素下标设为当前结构元素的兄弟结构元素下标,并返回到当前结构元素的父结构元素的处理上下文中,返回第C5子模块。

说明书

信息文档的处理方法及装置

技术领域

本发明涉及计算机数据处理技术领域,尤其涉及一种可扩展标记语言(XML)信息文档的处理方法及装置。

背景技术

XML文档是一种用来结构化数据的通用且适应性强的格式文档,目前已经大量应用在计算机软件工业领域。现有的对XML文档的处理方式中,主要采用针对XML的简单应用程序编程接口(SAX,Simple API for XML)事件驱动模式,直接在事件触发过程中处理文档。SAX事件驱动模式的主要处理方式为:以一种流线形事件驱动处理方式作用于XML文档,每遇到一个元素就会触发一个事件,由事件处理器进行处理,并直接在事件处理器中对文档内容进行处理且返回结果(即直接返回结果)。这种处理方式的优点是事件分析器按顺序读取XML文档,而不把整个文档读入内存,所以处理速度很快。

但是,现有这种处理方式的缺点是:从头到尾读取XML文档,必须通过一个个标签间的连续跳转才能处理下去,是一个不掉的阻塞式处理过程,所以导致整个文档的处理过程非常漫长,返回结果的速度很慢。当打开一个内容相对多的文档时(例如在WEB网页读取,办公文档格式读取过程中),程序将被XML文档的解析处理过程所阻塞,必须通过一个很长的时间才能将文档全部处理完毕,用户等待处理结果的时间很长,严重影响了软件的执行效率。

发明内容

有鉴于此,本发明的主要目的在于提供一种信息文档的处理方法,加快XML文档返回处理结果的速度,提高计算机软件的执行效率。

本发明的再一目的在于提供一种信息文档的处理装置,可加快XML文档返回处理结果的速度,提高计算机软件的执行效率。

为达到上述目的,本发明的技术方案是这样实现的:

一种信息文档的处理方法,该方法包括:

A、将可扩展标记语言XML文档标签信息映射到可由下标访问的XML文档向量模型中;

B、依据滞后处理策略信息,通过下标访问并处理所述XML文档向量模型的结构元素,其中对于需要滞后处理的信息暂不处理,记录该滞后处理信息的下标;

C、根据步骤B中记录的需要滞后处理信息的下标,访问并处理所述XML文档向量模型中对应的结构元素。

在一种优选实施例中,所述步骤A中,将所述XML文档中的每一个标签所包含的信息对应映射到XML文档向量模型的一个结构元素中,其中一个标签映射的结构元素包含有以下内容信息:

1)当前标签在XML文档中的顺序编号;

2)当前标签到包含此标签的父标签顺序编号的距离;

3)当前标签包含的子标签个数;

4)当前标签的标签名;

5)当前标签的属性信息;

6)当前标签包含的起始文本内容;

7)当前标签包含的结束文本内容。

在一种优选实施例中,所述步骤A以基于事件驱动分析处理的方式进行处理,具体包括以下事件驱动处理过程:

起始文档事件驱动处理:建立或清理一个可以通过下标访问的数据结构作为所述XML文档向量模型,初始化当前处理标签下标;

起始标签事件驱动处理:构建一个新标签的结构元素,并对该新结构元素的顺序编号、该新标签到父标签顺序编号的距离、该新结构元素的标签名称以及属性进行赋值,并将该新建的结构元素加入到可用下标访问的数据结构中,变更当前处理下标为当前结构元素的顺序编号;

内容处理事件驱动处理:判断当前遇到的内容是起始内容还是结束内容,如是起始内容,将对当前元素结构的起始内容赋值,否则对当前元素结构的结束内容赋值;

结束标签事件驱动处理:对当前处理结构元素的包含子元素数赋值,并将当前处理结构元素的父元素下标赋给当前处理标签下标。

在一种优选实施例中,所述步骤B具体包括:

B1、将所述XML文档向量模型的第一个结构元素作为当前结构元素,构建该结构元素对应的处理上下文作为当前处理上下文;

B2、在当前处理上下文中进行当前结构元素起始阶段的处理;

B3、在当前处理上下文中进行当前结构元素起始内容的处理,并为当前子结构元素下标赋值;

B4、判断当前子结构元素下标是否在当前结构元素的子结构元素范围内,如果是则进入到步骤B9,否则进入到步骤B5;

B5、在当前处理上下文中进行当前结构元素对应的结束内容的处理;

B6、在当前处理上下文中进行当前结构元素对应的结束阶段的处理;

B7、判断当前结构元素是否为根结构元素,如果是则结束本流程,否则进入步骤B8;

B8、将当前子结构元素下标设为当前结构元素的兄弟结构元素下标,并返回到当前结构元素的父结构元素的处理上下文中,进入步骤B4;

B9、依据预设的处理策略信息,判断当前子结构元素是否可以滞后处理,如果是则进入步骤B10,否则进入步骤B11;

B10、记录当前子结构元素下标的值,之后将当前子结构元素下标改为下一子结构元素位置,进入步骤B4;

B11、将当前处理上下文进行相应的处理,将当前子结构元素作为当前处理结构元素,并构建当前处理结构元素对应的处理上下文作为当前处理上下文,返回步骤B2。

在一种优选实施例中,步骤B中所述的滞后处理策略信息包括:判断当前处理的信息是否为后继处理过程中的必须项,如果不是必须项,且不是同等级信息中的首项,则可滞后处理。

在一种优选实施例中,所述步骤C中,针对每个所记录的滞后处理信息,分别执行如下步骤:

C1、将所记录的滞后处理信息的下标作为当前子结构元素下标,将该子结构元素对应父结构的处理上下文作为当前处理上下文;

C2、将当前的子结构元素下标作为当前结构元素下标,并构建该结构元素对应的处理上下文作为当前处理上下文;

C3、在当前处理上下文中进行当前结构元素起始阶段的处理;

C4、在当前处理上下文中进行当前结构元素起始内容的处理,并为当前子结构元素下标赋值;

C5、判断当前子结构元素下标是否在当前结构元素的子结构元素范围内,如果是则进入到步骤C2,否则进入到步骤C6;

C6、在当前处理上下文中进行当前结构元素对应的结束内容的处理;

C7、在当前处理上下文中进行当前结构元素对应的结束阶段的处理;

C8、判断当前结构元素下标是否为步骤C1所述的滞后处理信息的下标;如果是则结束本流程。否则进入步骤C9;

C9、将当前子结构元素下标设为当前结构元素的兄弟结构元素下标,并返回到当前结构元素的父结构元素的处理上下文中,返回步骤C5。

在一种优选实施例中,所述步骤B中,对于可滞后处理的信息,进一步记录该滞后处理信息的父结构的处理上下文信息,并在步骤C中直接利用所记录的上下文信息处理对应的结构元素。

一种信息文档的处理装置,该装置包括:

第一模块,用于将可扩展标记语言XML文档标签信息映射到可由下标访问的XML文档向量模型中;

第二模块,用于依据滞后处理策略信息,通过下标访问并处理所述XML文档向量模型的结构元素,其中对于需要滞后处理的信息暂不处理,记录该滞后处理信息的下标;

第三模块,用于根据第二模块中记录的需要滞后处理信息的下标,访问并处理所述XML文档向量模型中对应的结构元素。

在一种优选实施例中,所述第一模块具体包括以下事件驱动处理模块:

起始文档事件驱动处理模块,用于建立或清理一个可以通过下标访问的数据结构作为所述XML文档向量模型,初始化当前处理标签下标;

起始标签事件驱动处理模块,用于构建一个新标签的结构元素,并对该新结构元素的顺序编号、该新标签到父标签顺序编号的距离、该新结构元素的标签名称以及属性进行赋值,并将该新建的结构元素加入到可用下标访问的数据结构中,变更当前处理下标为当前结构元素的顺序编号;

内容处理事件驱动处理模块,用于判断当前遇到的内容是起始内容还是结束内容,如是起始内容,将对当前元素结构的起始内容赋值,否则对当前元素结构的结束内容赋值;

结束标签事件驱动处理模块,用于对当前处理结构元素的包含子元素数赋值,并将当前处理结构元素的父元素下标赋给当前处理标签下标。

在一种优选实施例中,所述第二模块具体包括以下子模块:

第B1子模块,用于将所述XML文档向量模型的第一个结构元素作为当前结构元素,构建该结构元素对应的处理上下文作为当前处理上下文;

第B2子模块,用于在当前处理上下文中进行当前结构元素起始阶段的处理;

第B3子模块,用于在当前处理上下文中进行当前结构元素起始内容的处理,并为当前子结构元素下标赋值;

第B4子模块,用于判断当前子结构元素下标是否在当前结构元素的子结构元素范围内,如果是则进入到第B9子模块,否则进入到第B5子模块;

第B5子模块,用于在当前处理上下文中进行当前结构元素对应的结束内容的处理;

第B6子模块,用于在当前处理上下文中进行当前结构元素对应的结束阶段的处理;

第B7子模块,用于判断当前结构元素是否为根结构元素,如果是则结束本流程,否则进入第B8子模块;

第B8子模块,用于将当前子结构元素下标设为当前结构元素的兄弟结构元素的下标,并返回到当前结构元素的父结构元素的处理上下文中,进入第B4子模块;

第B9子模块,用于依据预设的处理策略信息,判断当前子结构元素是否可以滞后处理,如果是则进入第B10子模块,否则进入第B11子模块;

第B10子模块,用于记录当前子结构元素下标的值,之后将当前子结构元素下标改为下一子结构元素位置,进入第B4子模块;

第B11子模块,用于将当前处理上下文进行相应的处理,将当前子结构元素作为当前处理结构元素,并构建当前处理结构元素对应的处理上下文作为当前处理上下文,返回第B2子模块。

在一种优选实施例中,所述第三模块具体包括以下子模块:

第C1子模块,用于将所记录的某滞后处理信息的下标作为当前子结构元素下标,将该子结构元素对应父结构的处理上下文作为当前处理上下文;

第C2子模块,用于将当前的子结构元素下标作为当前结构元素下标,并构建该结构元素对应的处理上下文作为当前处理上下文;

第C3子模块,用于在当前处理上下文中进行当前结构元素起始阶段的处理;

第C4子模块,用于在当前处理上下文中进行当前结构元素起始内容的处理,并为当前子结构元素下标赋值;

第C5子模块,用于判断当前子结构元素下标是否在当前结构元素的子结构元素范围内,如果是则进入到第C2子模块,否则进入到第C6子模块;

第C6子模块,用于在当前处理上下文中进行当前结构元素对应的结束内容的处理;

第C7子模块,用于在当前处理上下文中进行当前结构元素对应的结束阶段的处理;

第C8子模块,判断当前结构元素下标是否为第C1子模块所处理的滞后处理信息的下标;如果是则结束本流程。否则进入第C9子模块;

第C9子模块,用于将当前子结构元素下标设为当前结构元素的兄弟结构元素下标,并返回到当前结构元素的父结构元素的处理上下文中,返回第C5子模块。

由于本发明首先将XML文档的信息全部映射到可用下标访问的XML文档向量模型中,对该XML文档向量模型的访问可以不必是流线形、一个接一个元素地访问方式,而是可以随机移动访问其中所有的结构元素,因此本发明将可以先处理必要的结构元素并返回处理结果,对需要滞后处理的结构元素随后分批处理并分批返回处理结果,从而可以加快XML文档返回处理结果的速度,提高软件的执行效率,减少用户等待XML文档处理结果的时间。

附图说明

图1为本发明所述方法的核心处理流程;

图2a为本发明第一阶段起始文档事件驱动处理的流程图;

图2b为本发明第一阶段起始标签事件驱动处理的流程图;

图2c为本发明第一阶段内容处理事件驱动处理的流程图;

图2d为本发明第一阶段结束标签事件驱动处理的流程图;

图3为本发明一种实施例中所述第二阶段的详细处理流程图;

图4为所述第三阶段中针对所记录的某个滞后处理信息的下标进行处理的详细处理流程图;

图5为现有SAX事件驱动处理一个XML文档实例的示意图;

图6为本发明第一阶段将该XML文档实例映射得到的可由下标访问的数据结构映射图;

图7为本发明第二阶段处理所述XML文档向量模型的示意图;

图8为本发明第三阶段处理所述XML文档向量模型的示意图。

具体实施方式

下面通过具体实施例和附图对本发明做进一步详细说明。

图1为本发明所述方法的核心处理流程,该流程包括:

步骤101即第一阶段、将XML文档标签信息映射到可由下标访问的XML文档向量模型中;

步骤102即第二阶段、依据滞后处理策略信息,通过下标访问并处理所述XML文档向量模型的结构元素,其中对于需要滞后处理的信息暂不处理,记录该滞后处理信息的下标;

步骤103即第三阶段、根据上一步骤中记录的需要滞后处理信息的下标,访问并处理所述XML文档向量模型中对应的结构元素。

在所述步骤101中,将所述XML文档中的每一个标签所包含的信息对应映射到XML文档向量模型的一个结构元素中,其中一个标签映射的结构元素包含有以下内容信息:

1)当前标签在XML文档中的顺序编号;

2)当前标签到包含此标签的父标签顺序编号的距离;

3)当前标签包含的子标签个数;

4)当前标签的标签名;

5)当前标签的属性信息;

6)当前标签包含的起始文本内容;

7)当前标签包含的结束文本内容。

下表1为一个标签对应的结构元素的内容示例:

表1

另外一个标签的内容还可以包括一个标识符bool m_bBegin,以便表示当前处理是标签是否为标签起始过程。

所述步骤101以基于事件驱动分析处理的方式进行处理,例如在一种优选实施例中可以基于针对XML的简单API接口(SAX,Simple API for XML)事件驱动模式进行事件驱动处理,在此SAX事件驱动模式中,实现的事件处理器先不直接处理返回结果,而是将XML文档内容处理成XML文档向量模型。

步骤101中,具体包括图2a~图2d所示的事件驱动处理过程。

图2a为起始文档事件驱动处理的流程图,参见图2a的步骤211~步骤212,该流程包括:建立或清理一个可以通过下标访问的数据结构作为所述XML文档向量模型,初始化当前处理标签下标变量。

图2b为起始标签事件驱动处理的流程图,参见图2b的步骤221~步骤226,该流程包括:构建一个新结构元素的结构元素,并对该新结构元素的顺序编号、该新标签到父标签顺序编号的距离、该新结构元素的标签名称以及属性进行赋值,并将该新建的结构元素加入到可用下标访问的数据结构中,变更当前处理下标为当前结构元素的顺序编号。

图2c为内容处理事件驱动处理的流程图,参见图2c的步骤231~步骤233,该流程包括:判断当前遇到的内容是起始内容还是结束内容,如是起始内容,将对当前元素结构的起始内容赋值,否则对当前元素结构的结束内容赋值。

图2d为结束标签事件驱动处理的流程图,参见图2d的步骤241~步骤242,该流程包括:对当前处理结构元素的包含子元素数赋值,并将当前处理结构元素的父元素下标赋给当前处理标签下标。

通过构建这样一个XML文档向量模型,就可以将XML文档信息记录到上述的一个数据结构中,从而可以随机的通过下标来访问标签的信息,而且根据结构元素当中的信息也可以将文档进行随机的分割。在步骤102和步骤103中通过一个下标对应到所述文档向量模型中的每一个结构元素,以此得到文档中的每一个标签的内容信息。

通过上述步骤101的处理,XML文档的全部内容都已记录到XML文档向量模型的数据结构中,因此本发明在步骤102和步骤103中,对于XML文档的处理都将变为对于所述XML文档向量模型的处理。在步骤102和步骤103中,对于XML文档的每一个标签内容的访问就变成了通过下标在XML文档向量模型中访问其中的结构元素。

在步骤102即第二阶段中,将处理步骤101的XML文档向量模型,并将其中大部分信息根据当前文档采取相应滞后处理策略暂不处理,记录滞后处理信息的下标标识,还可以进一步记录该滞后处理信息对应的父结构的处理上下文信息,以在步骤103中即第三阶段直接利用所记录的上下文信息处理对应的结构元素。

图3为本发明一种实施例中所述第二阶段即步骤102的详细处理流程图。假设在该实施例中,已经构建了一个包含n个结构元素的XML文档向量模型为vector[n],c为当前处理的结构元素下标,s为当前子结构元素下标。参见图3,该流程具体包括:

步骤31、将所述XML文档向量模型的第一个结构元素作为当前结构元素,构建该结构元素对应的处理上下文作为当前处理上下文,在这里将c赋值为0。

步骤32、在当前处理上下文中进行当前结构元素起始阶段的处理;这里可以包括对当前结构元素的属性信息(vector[c]->mp_attributelist)的处理,及其它相关的处理。

步骤33、在当前处理上下文中进行当前结构元素起始内容的处理,并为当前子结构元素下标赋值,即对vector[c]->m_beginContent信息的处理,并将s赋值为c+1。

步骤34、判断当前子结构元素下标是否在当前结构元素的子结构元素范围内,即s是否大于等于c+1且小于等于c+vector[c]->m_count,如果是则进入到步骤39,否则进入到步骤35。

步骤35、在当前处理上下文中进行当前结构元素对应的结束内容的处理操作,即处理vector[c]->m_endContent信息。

步骤36、在当前处理上下文中进行当前结构元素对应的结束阶段的处理,通常是根据需要进行一些清理及其它相关的操作。

步骤37、判断当前结构元素是否为根结构元素,即c是否为0,如果是则结束本流程,返回处理结果给用户,否则进入步骤38。

步骤38、将当前子结构元素下标设为当前结构元素的兄弟结构元素下标,即s=c+vector[c]->m_count+1,并返回到当前结构元素的父结构元素的处理上下文中,即c=c-vector[c]->m_distance,之后进入步骤34;

步骤39、依据预设的处理策略信息,判断当前子结构元素是否可以滞后处理,如果是则进入步骤310,否则进入步骤311;

此处,所述的滞后处理策略信息包括:判断当前处理的信息是否为后继处理过程中的必须项(也就是说后继处理过程中不依赖当前需滞后处理的信息),如果不是必须项,且不是同等级信息中的首项(也就是说当前处理的标签的父标签已有相关相类同的标签被处理),则可滞后处理。此处举例说明该滞后处理策略,如在一个开放文档格式(ODF,Open Document Format)的电子表格中,对于多个表内容所对应的结构元素,第一个表内容可以先进行处理;而对于第二个/第三个.....表内容对应的结构元素可以将其设为滞后处理内容。当然,在另外的实施例中,所述滞后处理策略信息也可以不按上述信息设置,而是可以根据具体文档情况来设置。

步骤310、记录当前子结构元素下标的值,同时可以记录该子结构元素的父结构的处理上下文,以备第三阶段进行处理,之后将当前子结构元素下标改为下一子结构元素位置,即s=s+vector[s]->m_count+1,进入步骤34。在另一种实施例中,本步骤也可以只记录当前子结构元素下标的值,在后续第三阶段的处理中根据该子结构元素下标构建出其父结构的处理上下文。

步骤311、将当前处理上下文进行相应的处理,以备当前子结构元素处理完后(步骤38)使用,然后将当前子结构元素作为当前处理结构元素,即c=s,并构建当前处理结构元素对应的处理上下文作为当前处理上下文,进入步骤32。

通过上述步骤102即第二阶段,可以在处理XML文档的过程中只处理一部分内容就先返回结果信息给使用者,从而减少用户为获得结果信息而等待的时间。然后在后续的步骤103即第三阶段中,用户浏览或使用已经获得的结果信息时,应用程序再分批次的将未处理完的内容处理提供给用户。

在步骤103即第三阶段中具体处理上述需滞后处理的信息。在上述第二阶段的步骤310中已经保留了需滞后处理的子结构元素下标及其父结构的处理上下文,因此在第三阶段需要再对那些已保留下的未处理的内容进行处理。

在第三阶段中即步骤103中,可以分别针对所记录的每个滞后处理信息的下标进行处理,图4为所述第三阶段中针对所记录的某个滞后处理信息的下标进行处理的详细处理流程图。在第三阶段,可以按照所记录的滞后处理信息的下标的编号顺序分别执行图4流程进行处理,也可以不按编号顺序,而是按照指定的策略顺序分别执行图4流程。参见图4,针对所记录的每个子结构元素下标,分别执行如下步骤:

步骤41、将该子结构元素下标作为当前子结构元素下标,将所记录的该子结构元素对应父结构的处理上下文作为当前处理上下文。

如果在步骤310中只记录了子结构元素下标而没有记录其父结构的处理上下文,则在步骤41中进一步构造出该子结构元素的父结构的处理上下文,将该处理上下文作为当前处理上下文。

步骤42、将当前子结构元素下标作为当前处理结构元素下标,即c=s,并构建该结构元素对应的处理上下文,将该处理上下文作为当前处理上下文。

步骤43、在当前处理上下文中进行当前结构元素起始阶段的处理。此处可以包括对当前结构元素的属性信息(vector[c]->mp_attributelist)的处理,及其它相关的处理。

步骤44、在当前处理上下文中进行当前结构元素起始内容的处理,并为当前子结构元素下标赋值;即对vector[c]->m_beginContent信息进行处理,并将s赋值为c+1。

步骤45、判断当前子结构元素下标是否在当前结构元素的子结构元素范围内,即s大于等于c+1且小于等于c+vector[c]->m_count,如果是则进入到步骤42,否则进入到步骤46。

步骤46、在当前处理上下文中进行当前结构元素对应的结束内容的处理,即vector[c]->m_endContent信息的处理。

步骤47、在当前处理上下文中进行当前结构元素对应的结束阶段的处理,通常是根据需要进行一些清理及其它相关的操作。

步骤48、判断当前结构元素下标是否为步骤41所述的滞后处理子结构元素下标;如果是则结束本流程。否则进入步骤49。

步骤49、将当前子结构元素下标设为当前结构元素的兄弟结构元素下标,即s=c+vector[c]->m_count+1;并返回到当前结构元素的父结构元素的处理上下文中,即c=c-vector[c]->m_distance;之后进入步骤45。

下面通过一个示例XML文档的处理过程,对本发明所述各个阶段的过程进行进一步详细的描述。该XML文档如下:

<A name=″a″>

    <B name=″b1″>BeginContent1<C name=″c1″/>EndContent1</B>

    <B name=″b2″>BeginContent2<C name=″c2″/>EndContent2</B>

    <B name=″b3″>BeginContent3<C name=″c3″/>EndContent3</B>

    <B name=″b4″>BeginContent4<C name=″c4″/>EndContent4</B>

    <B name=″b5″>BeginContent5<C name=″c5″/>EndContent5</B>

    <B name=″b6″>BeginContent6<C name=″c6″/>EndContent6</B>

</A>

图5为现有SAX事件驱动处理上述XML文档实例的示意图。参见图5,在处理这样一个XML文档时,在现有的SAX事件驱动过程中其处理流程必须通过一个个标签间的连续跳转才行,是一种流线形事件驱动处理,为一个不掉的阻塞式处理过程。这样在处理过程中,面对着多个重复的标签,如果对于标签<B>的处理时间很长,这样整个文档的处理过程将会非常漫长。但现阶段的处理无法跳过每一个过程。

然而利用本发明的方法,在处理上述这样一个XML文档(如文字处理)时,可以先行只处理第一段的内容,就可以将结果较快的显示给用户,而当用户在阅读已显示内容时,程序可以分批处理并逐步返回结果给用户。具体的过程如下。

首先,在第一阶段,通过SAX的事件驱动过程解析得到一个如图6所示的可由下标访问的数据结构,即XML文档向量模型。如图2a~图2d所示,每个事件驱动的具体过程表述如下:

对所述XML文档进行SAX事件驱动分析过程,最初驱动起始文档事件:建立或清理一个可以通过下标访问的数据结构,初始化当前处理标签下标变量,例如初始化下标变量为0。

接着遇到起始标签<A name=″a″>,驱动起始标签事件,包括:构建一个新标签的结构元素,并对该新建对象(即当前新建的这个结构元素)的顺序编号m_local赋值为0,对该新建对象的到父标签距离m_distance赋值为0,对该新建对象的标签名称m_name赋值为A,属性mp_attributelist赋值为name=″a″,并将该新建结构元素加入到可用下标访问的数据结构中,如图6中的m_local为0的那一行;变更当前处理下标为当前对象的顺序编号m_local的值0。

接着遇到起始标签<B name=″b1″>,此时驱动起始标签事件,包括:构建一个新标签的结构元素,并对该新建对象的顺序编号赋值为1,对该新建对象的到父标签距离赋值为1,对该新建对象的标签名称赋值为B,属性赋值为name=″b1″,将新建结构元素加入到可下标访问的数据结构中,如图6中的m_local为1的那一行;变更当前处理下标为当前对象的顺序编号的值1。

接着向下进行驱动分析,遇到内容BeginContent1,驱动内容处理事件,包括:判断当前遇到的内容是起始内容还是结束内容,此时是起始内容,将当前结构元素的起始内容赋值,即下标为1的结构元素的起始内容赋值为BeginContent1。

接下来遇到起始标签<C name=″c1″,驱动起始标签事件,包括:构建一个新标签的结构元素,并对该新建对象的顺序编号赋值为2,对该新建对象的到父标签距离赋值为1,对该新建对象的标签名称赋值为C,属性赋值为name=″c1″,将该新建结构元素加入到可下标访问的数据结构中;变更当前处理下标为当前对象的顺序编号的值2。

接下来遇到结束标签/>,驱动结束标签事件,包括:对当前处理结构元素(下标值为2)的包含子元素数m_count赋值为0,并将当前处理结构元素的父元素下标1赋给当前处理标签下标。

接下来遇到内容EndContent1,驱动内容处理事件,包括:判断当前遇到的内容是起始内容还是结束内容,此时是结束内容,将当前处理结构元素的结束内容赋值,即下标为1结构元素的结束内容赋值为EndContent1。

接下来遇到结束标签</B>,驱动结束标签事件,包括:对当前处理结构元素(下标值为1)的包含子元素数m_count赋值为1,并将当前处理结构元素的父元素下标0赋给当前处理标签下标。

接下来遇到起始标签<B name=″b2″>,驱动起始标签事件,包括:构建一个新标签的结构元素,并对该新建对象的顺序编号赋值为3,对该新建对象的到父标签距离赋值为3,对该新建对象的标签名称赋值为B,属性赋值为name=″b2″,将该新建的结构元素加入到可下标访问的数据结构中;变更当前处理下标为当前对象的顺序编号的值3。

接下来遇到内容BeginContent2,驱动内容处理事件,包括:判断当前遇到的内容是起始内容还是结束内容,此时是起始内容,将当前处理结构元素的起始内容赋值,即下标为3的结构元素的起始内容赋值为BeginContent2。

接下来按照与上述流程类似的方式进行处理,直到SAX事件驱动分析处理过程结束,得到如图6所示的完整的XML文档向量模型。

然后,进入第二阶段的处理。按照如图3所示的流程,从下标为0的结构元素开始处理所述XML文档向量模型,处理过程的一种示意图如图7所示。此处,可以看到对于下标为1、3、5、7、9、11的结构元素是同一类标签(即标签<B>)元素,他们之间是平等的关系,在处理过程中不产生相互依赖的关系;因此,本实例中的滞后处理策略就是,当完成对于下标1的结构元素及其子结构元素(即下标2的结构元素)的处理就可以返回给用户一个相对较完整的信息(虽然是部分,但也是一个较完整的结果),其他下标3、5、7、9、11的结构元素及其子元素可以滞后处理。因此,在第二阶段的处理过程中仅处理下标为0、1、2的三个结构元素,就先返回结果,并记录下标为3、5、7、9、11的结构元素的下标,同时也可记录下标0的结构元素的处理上下文,以备第三阶段处理使用。通过第二阶段的处理,用户不必等到所有的内容都处理完才能看到第一个结果,有效地缩短了返回处理结果的等待时间,可以提高程序与用户的交互效率。

最后,进入第三阶段的处理。按照如图4所示的流程,从第二阶段所记录下标为0的结构元素的处理上下文和所记录的结构元素的下标3开始,处理所述XML文档向量模型,处理过程的一种示意图如图8所示。例如处理下标为3的子结构元素的具体过程如图4所示具体为:

在步骤41中将该子结构元素下标3作为当前子结构元素下标变量s,将所记录的该子结构元素对应父结构(下标为0)的处理上下文作为当前处理上下文。

在步骤42中将当前子结构元素下标作为当前处理结构元素下标,即c=s=3,并构建该结构元素下标3对应的处理上下文,将该处理上下文作为当前处理上下文。

在步骤43中,在当前处理上下文中进行当前结构元素(下标为3)起始阶段的处理。在步骤44中,在当前处理上下文中进行当前结构元素(下标为3)起始内容的处理,并为当前子结构元素下标赋值即s=c+1=4。

进入步骤45,判断当前子结构元素下标是否在当前结构元素的子结构元素范围内,此时s=4,大于等于c+1=4且小于等于c+vector[c]->m_count=4,进入到步骤42,将当前子结构元素下标作为当前处理结构元素下标,即c=s=4,并构建该结构元素下标4对应的处理上下文,将该处理上下文作为当前处理上下文。接着在步骤43中,在当前处理上下文中进行当前结构元素(下标为4)起始阶段的处理。在步骤44中,在当前处理上下文中进行当前结构元素(下标为4)起始内容的处理,并为当前子结构元素下标赋值即s=c+1=5。

再次进入步骤45,此时s=5,大于等于c+1=5,但大于c+vector[c]->m_count=4,所以进入到步骤46。在步骤46中,在当前处理上下文中进行当前结构元素(下标为4)对应的结束内容的处理。在步骤47中,在当前处理上下文中进行当前结构元素(下标为4)对应的结束阶段的处理。

进入步骤48、判断当前结构元素下标(下标为4)不是步骤41所述的滞后处理子结构元素下标(下标为3),所以进入步骤49。在步骤49中、将当前子结构元素下标设为当前结构元素的兄弟结构元素下标,即s=c+vector[c]->m_count+1=5;并返回到当前结构元素的父结构元素的处理上下文中,即c=c-vector[c]->m_distance=3。

之后再次进入步骤45,此时s=5,大于等于c+1=4,但大于c+vector[c]->m_count=4,所以进入到步骤46。在步骤46中,在当前处理上下文中进行当前结构元素(下标为3)对应的结束内容的处理。在步骤47中,在当前处理上下文中进行当前结构元素(下标为3)对应的结束阶段的处理。

进入步骤48、判断当前结构元素下标(下标为3)是步骤41所述的滞后处理子结构元素下标(下标为3),所以结束本流程。

依照上述流程,可以依次处理下标3的结构元素及其子结构元素(即下标4的结构元素)、下标5的结构元素及其子结构元素(即下标6的结构元素)、下标7的结构元素及其子结构元素(即下标8的结构元素)、下标9的结构元素及其子结构元素(即下标10的结构元素)、下标11的结构元素及其子结构元素(即下标12的结构元素),也可以不按照所记录的下标顺序,而是根据需要分别处理所记录下标的结构元素。利用第三阶段的处理,可以在用户查看第二阶段的处理结果的同时,随机分批处理所述的滞后处理信息,并逐步返回处理结果给用户。

以上所述,仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。

信息文档的处理方法及装置.pdf_第1页
第1页 / 共25页
信息文档的处理方法及装置.pdf_第2页
第2页 / 共25页
信息文档的处理方法及装置.pdf_第3页
第3页 / 共25页
点击查看更多>>
资源描述

《信息文档的处理方法及装置.pdf》由会员分享,可在线阅读,更多相关《信息文档的处理方法及装置.pdf(25页珍藏版)》请在专利查询网上搜索。

1、10申请公布号CN102004722A43申请公布日20110406CN102004722ACN102004722A21申请号201010519870122申请日20101019G06F17/2220060171申请人北京红旗中文贰仟软件技术有限公司地址100176北京市北京经济技术开发区(亦庄)西环南路18号汇龙森A座2层72发明人曾良军李恒74专利代理机构北京派特恩知识产权代理事务所普通合伙11270代理人张颖玲王黎延54发明名称信息文档的处理方法及装置57摘要本发明公开了一种信息文档的处理方法和装置,所述方法包括A、将可扩展标记语言XML文档标签信息映射到可由下标访问的XML文档向量模型。

2、中;B、依据滞后处理策略信息,通过下标访问并处理所述XML文档向量模型的结构元素,其中对于需要滞后处理的信息暂不处理,记录该滞后处理信息的下标;C、根据步骤B中记录的需要滞后处理信息的下标,访问并处理所述XML文档向量模型中对应的结构元素。所述装置用于执行上述方法。利用本发明,可以加快XML文档返回处理结果的速度,提高软件的执行效率,减少用户等待XML文档处理结果的时间。51INTCL19中华人民共和国国家知识产权局12发明专利申请权利要求书4页说明书12页附图8页CN102004735A1/4页21一种信息文档的处理方法,其特征在于,该方法包括A、将可扩展标记语言XML文档标签信息映射到可由。

3、下标访问的XML文档向量模型中;B、依据滞后处理策略信息,通过下标访问并处理所述XML文档向量模型的结构元素,其中对于需要滞后处理的信息暂不处理,记录该滞后处理信息的下标;C、根据步骤B中记录的需要滞后处理信息的下标,访问并处理所述XML文档向量模型中对应的结构元素。2根据权利要求1所述的方法,其特征在于,所述步骤A中,将所述XML文档中的每一个标签所包含的信息对应映射到XML文档向量模型的一个结构元素中,其中一个标签映射的结构元素包含有以下内容信息1当前标签在XML文档中的顺序编号;2当前标签到包含此标签的父标签顺序编号的距离;3当前标签包含的子标签个数;4当前标签的标签名;5当前标签的属性。

4、信息;6当前标签包含的起始文本内容;7当前标签包含的结束文本内容。3根据权利要求2所述的方法,其特征在于,所述步骤A以基于事件驱动分析处理的方式进行处理,具体包括以下事件驱动处理过程起始文档事件驱动处理建立或清理一个可以通过下标访问的数据结构作为所述XML文档向量模型,初始化当前处理标签下标;起始标签事件驱动处理构建一个新标签的结构元素,并对该新结构元素的顺序编号、该新标签到父标签顺序编号的距离、该新结构元素的标签名称以及属性进行赋值,并将该新建的结构元素加入到可用下标访问的数据结构中,变更当前处理下标为当前结构元素的顺序编号;内容处理事件驱动处理判断当前遇到的内容是起始内容还是结束内容,如是。

5、起始内容,将对当前元素结构的起始内容赋值,否则对当前元素结构的结束内容赋值;结束标签事件驱动处理对当前处理结构元素的包含子元素数赋值,并将当前处理结构元素的父元素下标赋给当前处理标签下标。4根据权利要求1所述的方法,其特征在于,所述步骤B具体包括B1、将所述XML文档向量模型的第一个结构元素作为当前结构元素,构建该结构元素对应的处理上下文作为当前处理上下文;B2、在当前处理上下文中进行当前结构元素起始阶段的处理;B3、在当前处理上下文中进行当前结构元素起始内容的处理,并为当前子结构元素下标赋值;B4、判断当前子结构元素下标是否在当前结构元素的子结构元素范围内,如果是则进入到步骤B9,否则进入到。

6、步骤B5;B5、在当前处理上下文中进行当前结构元素对应的结束内容的处理;B6、在当前处理上下文中进行当前结构元素对应的结束阶段的处理;B7、判断当前结构元素是否为根结构元素,如果是则结束本流程,否则进入步骤B8;权利要求书CN102004722ACN102004735A2/4页3B8、将当前子结构元素下标设为当前结构元素的兄弟结构元素下标,并返回到当前结构元素的父结构元素的处理上下文中,进入步骤B4;B9、依据预设的处理策略信息,判断当前子结构元素是否可以滞后处理,如果是则进入步骤B10,否则进入步骤B11;B10、记录当前子结构元素下标的值,之后将当前子结构元素下标的值改为下一子结构元素位置。

7、,进入步骤B4;B11、将当前处理上下文进行相应的处理,将当前子结构元素作为当前处理结构元素,并构建当前处理结构元素对应的处理上下文作为当前处理上下文,返回步骤B2。5根据权利要求1或4所述的方法,其特征在于,步骤B中所述的滞后处理策略信息包括判断当前处理的信息是否为后继处理过程中的必须项,如果不是必须项,且不是同等级信息中的首项,则可滞后处理。6根据权利要求1所述的方法,其特征在于,所述步骤C中,针对每个所记录的滞后处理信息,分别执行如下步骤C1、将所记录的滞后处理信息的下标作为当前子结构元素下标,将该子结构元素对应父结构的处理上下文作为当前处理上下文;C2、将当前的子结构元素下标作为当前结。

8、构元素下标,并构建该结构元素对应的处理上下文作为当前处理上下文;C3、在当前处理上下文中进行当前结构元素起始阶段的处理;C4、在当前处理上下文中进行当前结构元素起始内容的处理,并为当前子结构元素下标赋值;C5、判断当前子结构元素下标是否在当前结构元素的子结构元素范围内,如果是则进入到步骤C2,否则进入到步骤C6;C6、在当前处理上下文中进行当前结构元素对应的结束内容的处理;C7、在当前处理上下文中进行当前结构元素对应的结束阶段的处理;C8、判断当前结构元素下标是否为步骤C1所述的滞后处理信息的下标;如果是则结束本流程。否则进入步骤C9;C9、将当前子结构元素下标设为当前结构元素的兄弟结构元素下。

9、标,并返回到当前结构元素的父结构元素的处理上下文中,返回步骤C5。7根据权利要求1、4或6所述的方法,所述步骤B中,对于可滞后处理的信息,进一步记录该滞后处理信息的父结构的处理上下文信息,并在步骤C中直接利用所记录的上下文信息处理对应的结构元素。8一种信息文档的处理装置,其特征在于,该装置包括第一模块,用于将可扩展标记语言XML文档标签信息映射到可由下标访问的XML文档向量模型中;第二模块,用于依据滞后处理策略信息,通过下标访问并处理所述XML文档向量模型的结构元素,其中对于需要滞后处理的信息暂不处理,记录该滞后处理信息的下标;第三模块,用于根据第二模块中记录的需要滞后处理信息的下标,访问并处。

10、理所述XML文档向量模型中对应的结构元素。9根据权利要求8所述的装置,其特征在于,所述第一模块具体包括以下事件驱动处权利要求书CN102004722ACN102004735A3/4页4理模块起始文档事件驱动处理模块,用于建立或清理一个可以通过下标访问的数据结构作为所述XML文档向量模型,初始化当前处理标签下标;起始标签事件驱动处理模块,用于构建一个新标签的结构元素,并对该新结构元素的顺序编号、该新标签到父标签顺序编号的距离、该新结构元素的标签名称以及属性进行赋值,并将该新建的结构元素加入到可用下标访问的数据结构中,变更当前处理下标为当前结构元素的顺序编号;内容处理事件驱动处理模块,用于判断当前。

11、遇到的内容是起始内容还是结束内容,如是起始内容,将对当前元素结构的起始内容赋值,否则对当前元素结构的结束内容赋值;结束标签事件驱动处理模块,用于对当前处理结构元素的包含子元素数赋值,并将当前处理结构元素的父元素下标赋给当前处理标签下标。10根据权利要求8所述的装置,其特征在于,所述第二模块具体包括以下子模块第B1子模块,用于将所述XML文档向量模型的第一个结构元素作为当前结构元素,构建该结构元素对应的处理上下文作为当前处理上下文;第B2子模块,用于在当前处理上下文中进行当前结构元素起始阶段的处理;第B3子模块,用于在当前处理上下文中进行当前结构元素起始内容的处理,并为当前子结构元素下标赋值;第。

12、B4子模块,用于判断当前子结构元素下标是否在当前结构元素的子结构元素范围内,如果是则进入到第B9子模块,否则进入到第B5子模块;第B5子模块,用于在当前处理上下文中进行当前结构元素对应的结束内容的处理;第B6子模块,用于在当前处理上下文中进行当前结构元素对应的结束阶段的处理;第B7子模块,用于判断当前结构元素是否为根结构元素,如果是则结束本流程,否则进入第B8子模块;第B8子模块,用于将当前子结构元素下标设为当前结构元素的兄弟结构元素的下标,并返回到当前结构元素的父结构元素的处理上下文中,进入第B4子模块;第B9子模块,用于依据预设的处理策略信息,判断当前子结构元素是否可以滞后处理,如果是则进。

13、入第B10子模块,否则进入第B11子模块;第B10子模块,用于记录当前子结构元素下标的值,之后将当前子结构元素下标改为下一子结构元素位置,进入第B4子模块;第B11子模块,用于将当前处理上下文进行相应的处理,将当前子结构元素作为当前处理结构元素,并构建当前处理结构元素对应的处理上下文作为当前处理上下文,返回第B2子模块。11根据权利要求8所述的装置,其特征在于,所述第三模块具体包括以下子模块第C1子模块,用于将所记录的某滞后处理信息的下标作为当前子结构元素下标,将该子结构元素对应父结构的处理上下文作为当前处理上下文;第C2子模块,用于将当前的子结构元素下标作为当前结构元素下标,并构建该结构元素。

14、对应的处理上下文作为当前处理上下文;第C3子模块,用于在当前处理上下文中进行当前结构元素起始阶段的处理;第C4子模块,用于在当前处理上下文中进行当前结构元素起始内容的处理,并为当前权利要求书CN102004722ACN102004735A4/4页5子结构元素下标赋值;第C5子模块,用于判断当前子结构元素下标是否在当前结构元素的子结构元素范围内,如果是则进入到第C2子模块,否则进入到第C6子模块;第C6子模块,用于在当前处理上下文中进行当前结构元素对应的结束内容的处理;第C7子模块,用于在当前处理上下文中进行当前结构元素对应的结束阶段的处理;第C8子模块,判断当前结构元素下标是否为第C1子模块所。

15、处理的滞后处理信息的下标;如果是则结束本流程。否则进入第C9子模块;第C9子模块,用于将当前子结构元素下标设为当前结构元素的兄弟结构元素下标,并返回到当前结构元素的父结构元素的处理上下文中,返回第C5子模块。权利要求书CN102004722ACN102004735A1/12页6信息文档的处理方法及装置技术领域0001本发明涉及计算机数据处理技术领域,尤其涉及一种可扩展标记语言XML信息文档的处理方法及装置。背景技术0002XML文档是一种用来结构化数据的通用且适应性强的格式文档,目前已经大量应用在计算机软件工业领域。现有的对XML文档的处理方式中,主要采用针对XML的简单应用程序编程接口SAX。

16、,SIMPLEAPIFORXML事件驱动模式,直接在事件触发过程中处理文档。SAX事件驱动模式的主要处理方式为以一种流线形事件驱动处理方式作用于XML文档,每遇到一个元素就会触发一个事件,由事件处理器进行处理,并直接在事件处理器中对文档内容进行处理且返回结果即直接返回结果。这种处理方式的优点是事件分析器按顺序读取XML文档,而不把整个文档读入内存,所以处理速度很快。0003但是,现有这种处理方式的缺点是从头到尾读取XML文档,必须通过一个个标签间的连续跳转才能处理下去,是一个不掉的阻塞式处理过程,所以导致整个文档的处理过程非常漫长,返回结果的速度很慢。当打开一个内容相对多的文档时例如在WEB网。

17、页读取,办公文档格式读取过程中,程序将被XML文档的解析处理过程所阻塞,必须通过一个很长的时间才能将文档全部处理完毕,用户等待处理结果的时间很长,严重影响了软件的执行效率。发明内容0004有鉴于此,本发明的主要目的在于提供一种信息文档的处理方法,加快XML文档返回处理结果的速度,提高计算机软件的执行效率。0005本发明的再一目的在于提供一种信息文档的处理装置,可加快XML文档返回处理结果的速度,提高计算机软件的执行效率。0006为达到上述目的,本发明的技术方案是这样实现的0007一种信息文档的处理方法,该方法包括0008A、将可扩展标记语言XML文档标签信息映射到可由下标访问的XML文档向量模。

18、型中;0009B、依据滞后处理策略信息,通过下标访问并处理所述XML文档向量模型的结构元素,其中对于需要滞后处理的信息暂不处理,记录该滞后处理信息的下标;0010C、根据步骤B中记录的需要滞后处理信息的下标,访问并处理所述XML文档向量模型中对应的结构元素。0011在一种优选实施例中,所述步骤A中,将所述XML文档中的每一个标签所包含的信息对应映射到XML文档向量模型的一个结构元素中,其中一个标签映射的结构元素包含有以下内容信息00121当前标签在XML文档中的顺序编号;说明书CN102004722ACN102004735A2/12页700132当前标签到包含此标签的父标签顺序编号的距离;00。

19、143当前标签包含的子标签个数;00154当前标签的标签名;00165当前标签的属性信息;00176当前标签包含的起始文本内容;00187当前标签包含的结束文本内容。0019在一种优选实施例中,所述步骤A以基于事件驱动分析处理的方式进行处理,具体包括以下事件驱动处理过程0020起始文档事件驱动处理建立或清理一个可以通过下标访问的数据结构作为所述XML文档向量模型,初始化当前处理标签下标;0021起始标签事件驱动处理构建一个新标签的结构元素,并对该新结构元素的顺序编号、该新标签到父标签顺序编号的距离、该新结构元素的标签名称以及属性进行赋值,并将该新建的结构元素加入到可用下标访问的数据结构中,变更。

20、当前处理下标为当前结构元素的顺序编号;0022内容处理事件驱动处理判断当前遇到的内容是起始内容还是结束内容,如是起始内容,将对当前元素结构的起始内容赋值,否则对当前元素结构的结束内容赋值;0023结束标签事件驱动处理对当前处理结构元素的包含子元素数赋值,并将当前处理结构元素的父元素下标赋给当前处理标签下标。0024在一种优选实施例中,所述步骤B具体包括0025B1、将所述XML文档向量模型的第一个结构元素作为当前结构元素,构建该结构元素对应的处理上下文作为当前处理上下文;0026B2、在当前处理上下文中进行当前结构元素起始阶段的处理;0027B3、在当前处理上下文中进行当前结构元素起始内容的处。

21、理,并为当前子结构元素下标赋值;0028B4、判断当前子结构元素下标是否在当前结构元素的子结构元素范围内,如果是则进入到步骤B9,否则进入到步骤B5;0029B5、在当前处理上下文中进行当前结构元素对应的结束内容的处理;0030B6、在当前处理上下文中进行当前结构元素对应的结束阶段的处理;0031B7、判断当前结构元素是否为根结构元素,如果是则结束本流程,否则进入步骤B8;0032B8、将当前子结构元素下标设为当前结构元素的兄弟结构元素下标,并返回到当前结构元素的父结构元素的处理上下文中,进入步骤B4;0033B9、依据预设的处理策略信息,判断当前子结构元素是否可以滞后处理,如果是则进入步骤B。

22、10,否则进入步骤B11;0034B10、记录当前子结构元素下标的值,之后将当前子结构元素下标改为下一子结构元素位置,进入步骤B4;0035B11、将当前处理上下文进行相应的处理,将当前子结构元素作为当前处理结构元素,并构建当前处理结构元素对应的处理上下文作为当前处理上下文,返回步骤B2。0036在一种优选实施例中,步骤B中所述的滞后处理策略信息包括判断当前处理的说明书CN102004722ACN102004735A3/12页8信息是否为后继处理过程中的必须项,如果不是必须项,且不是同等级信息中的首项,则可滞后处理。0037在一种优选实施例中,所述步骤C中,针对每个所记录的滞后处理信息,分别执。

23、行如下步骤0038C1、将所记录的滞后处理信息的下标作为当前子结构元素下标,将该子结构元素对应父结构的处理上下文作为当前处理上下文;0039C2、将当前的子结构元素下标作为当前结构元素下标,并构建该结构元素对应的处理上下文作为当前处理上下文;0040C3、在当前处理上下文中进行当前结构元素起始阶段的处理;0041C4、在当前处理上下文中进行当前结构元素起始内容的处理,并为当前子结构元素下标赋值;0042C5、判断当前子结构元素下标是否在当前结构元素的子结构元素范围内,如果是则进入到步骤C2,否则进入到步骤C6;0043C6、在当前处理上下文中进行当前结构元素对应的结束内容的处理;0044C7、。

24、在当前处理上下文中进行当前结构元素对应的结束阶段的处理;0045C8、判断当前结构元素下标是否为步骤C1所述的滞后处理信息的下标;如果是则结束本流程。否则进入步骤C9;0046C9、将当前子结构元素下标设为当前结构元素的兄弟结构元素下标,并返回到当前结构元素的父结构元素的处理上下文中,返回步骤C5。0047在一种优选实施例中,所述步骤B中,对于可滞后处理的信息,进一步记录该滞后处理信息的父结构的处理上下文信息,并在步骤C中直接利用所记录的上下文信息处理对应的结构元素。0048一种信息文档的处理装置,该装置包括0049第一模块,用于将可扩展标记语言XML文档标签信息映射到可由下标访问的XML文档。

25、向量模型中;0050第二模块,用于依据滞后处理策略信息,通过下标访问并处理所述XML文档向量模型的结构元素,其中对于需要滞后处理的信息暂不处理,记录该滞后处理信息的下标;0051第三模块,用于根据第二模块中记录的需要滞后处理信息的下标,访问并处理所述XML文档向量模型中对应的结构元素。0052在一种优选实施例中,所述第一模块具体包括以下事件驱动处理模块0053起始文档事件驱动处理模块,用于建立或清理一个可以通过下标访问的数据结构作为所述XML文档向量模型,初始化当前处理标签下标;0054起始标签事件驱动处理模块,用于构建一个新标签的结构元素,并对该新结构元素的顺序编号、该新标签到父标签顺序编号。

26、的距离、该新结构元素的标签名称以及属性进行赋值,并将该新建的结构元素加入到可用下标访问的数据结构中,变更当前处理下标为当前结构元素的顺序编号;0055内容处理事件驱动处理模块,用于判断当前遇到的内容是起始内容还是结束内容,如是起始内容,将对当前元素结构的起始内容赋值,否则对当前元素结构的结束内容赋值;说明书CN102004722ACN102004735A4/12页90056结束标签事件驱动处理模块,用于对当前处理结构元素的包含子元素数赋值,并将当前处理结构元素的父元素下标赋给当前处理标签下标。0057在一种优选实施例中,所述第二模块具体包括以下子模块0058第B1子模块,用于将所述XML文档向。

27、量模型的第一个结构元素作为当前结构元素,构建该结构元素对应的处理上下文作为当前处理上下文;0059第B2子模块,用于在当前处理上下文中进行当前结构元素起始阶段的处理;0060第B3子模块,用于在当前处理上下文中进行当前结构元素起始内容的处理,并为当前子结构元素下标赋值;0061第B4子模块,用于判断当前子结构元素下标是否在当前结构元素的子结构元素范围内,如果是则进入到第B9子模块,否则进入到第B5子模块;0062第B5子模块,用于在当前处理上下文中进行当前结构元素对应的结束内容的处理;0063第B6子模块,用于在当前处理上下文中进行当前结构元素对应的结束阶段的处理;0064第B7子模块,用于判。

28、断当前结构元素是否为根结构元素,如果是则结束本流程,否则进入第B8子模块;0065第B8子模块,用于将当前子结构元素下标设为当前结构元素的兄弟结构元素的下标,并返回到当前结构元素的父结构元素的处理上下文中,进入第B4子模块;0066第B9子模块,用于依据预设的处理策略信息,判断当前子结构元素是否可以滞后处理,如果是则进入第B10子模块,否则进入第B11子模块;0067第B10子模块,用于记录当前子结构元素下标的值,之后将当前子结构元素下标改为下一子结构元素位置,进入第B4子模块;0068第B11子模块,用于将当前处理上下文进行相应的处理,将当前子结构元素作为当前处理结构元素,并构建当前处理结构。

29、元素对应的处理上下文作为当前处理上下文,返回第B2子模块。0069在一种优选实施例中,所述第三模块具体包括以下子模块0070第C1子模块,用于将所记录的某滞后处理信息的下标作为当前子结构元素下标,将该子结构元素对应父结构的处理上下文作为当前处理上下文;0071第C2子模块,用于将当前的子结构元素下标作为当前结构元素下标,并构建该结构元素对应的处理上下文作为当前处理上下文;0072第C3子模块,用于在当前处理上下文中进行当前结构元素起始阶段的处理;0073第C4子模块,用于在当前处理上下文中进行当前结构元素起始内容的处理,并为当前子结构元素下标赋值;0074第C5子模块,用于判断当前子结构元素下。

30、标是否在当前结构元素的子结构元素范围内,如果是则进入到第C2子模块,否则进入到第C6子模块;0075第C6子模块,用于在当前处理上下文中进行当前结构元素对应的结束内容的处理;0076第C7子模块,用于在当前处理上下文中进行当前结构元素对应的结束阶段的处理;说明书CN102004722ACN102004735A5/12页100077第C8子模块,判断当前结构元素下标是否为第C1子模块所处理的滞后处理信息的下标;如果是则结束本流程。否则进入第C9子模块;0078第C9子模块,用于将当前子结构元素下标设为当前结构元素的兄弟结构元素下标,并返回到当前结构元素的父结构元素的处理上下文中,返回第C5子模块。

31、。0079由于本发明首先将XML文档的信息全部映射到可用下标访问的XML文档向量模型中,对该XML文档向量模型的访问可以不必是流线形、一个接一个元素地访问方式,而是可以随机移动访问其中所有的结构元素,因此本发明将可以先处理必要的结构元素并返回处理结果,对需要滞后处理的结构元素随后分批处理并分批返回处理结果,从而可以加快XML文档返回处理结果的速度,提高软件的执行效率,减少用户等待XML文档处理结果的时间。附图说明0080图1为本发明所述方法的核心处理流程;0081图2A为本发明第一阶段起始文档事件驱动处理的流程图;0082图2B为本发明第一阶段起始标签事件驱动处理的流程图;0083图2C为本发。

32、明第一阶段内容处理事件驱动处理的流程图;0084图2D为本发明第一阶段结束标签事件驱动处理的流程图;0085图3为本发明一种实施例中所述第二阶段的详细处理流程图;0086图4为所述第三阶段中针对所记录的某个滞后处理信息的下标进行处理的详细处理流程图;0087图5为现有SAX事件驱动处理一个XML文档实例的示意图;0088图6为本发明第一阶段将该XML文档实例映射得到的可由下标访问的数据结构映射图;0089图7为本发明第二阶段处理所述XML文档向量模型的示意图;0090图8为本发明第三阶段处理所述XML文档向量模型的示意图。具体实施方式0091下面通过具体实施例和附图对本发明做进一步详细说明。0。

33、092图1为本发明所述方法的核心处理流程,该流程包括0093步骤101即第一阶段、将XML文档标签信息映射到可由下标访问的XML文档向量模型中;0094步骤102即第二阶段、依据滞后处理策略信息,通过下标访问并处理所述XML文档向量模型的结构元素,其中对于需要滞后处理的信息暂不处理,记录该滞后处理信息的下标;0095步骤103即第三阶段、根据上一步骤中记录的需要滞后处理信息的下标,访问并处理所述XML文档向量模型中对应的结构元素。0096在所述步骤101中,将所述XML文档中的每一个标签所包含的信息对应映射到XML文档向量模型的一个结构元素中,其中一个标签映射的结构元素包含有以下内容信息009。

34、71当前标签在XML文档中的顺序编号;00982当前标签到包含此标签的父标签顺序编号的距离;说明书CN102004722ACN102004735A6/12页1100993当前标签包含的子标签个数;01004当前标签的标签名;01015当前标签的属性信息;01026当前标签包含的起始文本内容;01037当前标签包含的结束文本内容。0104下表1为一个标签对应的结构元素的内容示例01050106表10107另外一个标签的内容还可以包括一个标识符BOOLM_BBEGIN,以便表示当前处理是标签是否为标签起始过程。0108所述步骤101以基于事件驱动分析处理的方式进行处理,例如在一种优选实施例中可以基。

35、于针对XML的简单API接口SAX,SIMPLEAPIFORXML事件驱动模式进行事件驱动处理,在此SAX事件驱动模式中,实现的事件处理器先不直接处理返回结果,而是将XML文档内容处理成XML文档向量模型。0109步骤101中,具体包括图2A图2D所示的事件驱动处理过程。0110图2A为起始文档事件驱动处理的流程图,参见图2A的步骤211步骤212,该流程包括建立或清理一个可以通过下标访问的数据结构作为所述XML文档向量模型,初始化当前处理标签下标变量。0111图2B为起始标签事件驱动处理的流程图,参见图2B的步骤221步骤226,该流程包括构建一个新结构元素的结构元素,并对该新结构元素的顺序。

36、编号、该新标签到父标签顺序编号的距离、该新结构元素的标签名称以及属性进行赋值,并将该新建的结构元素加入到可用下标访问的数据结构中,变更当前处理下标为当前结构元素的顺序编号。0112图2C为内容处理事件驱动处理的流程图,参见图2C的步骤231步骤233,该流程包括判断当前遇到的内容是起始内容还是结束内容,如是起始内容,将对当前元素结构的起始内容赋值,否则对当前元素结构的结束内容赋值。0113图2D为结束标签事件驱动处理的流程图,参见图2D的步骤241步骤242,该流程包括对当前处理结构元素的包含子元素数赋值,并将当前处理结构元素的父元素下标赋给当前处理标签下标。0114通过构建这样一个XML文档。

37、向量模型,就可以将XML文档信息记录到上述的一个数据结构中,从而可以随机的通过下标来访问标签的信息,而且根据结构元素当中的信息说明书CN102004722ACN102004735A7/12页12也可以将文档进行随机的分割。在步骤102和步骤103中通过一个下标对应到所述文档向量模型中的每一个结构元素,以此得到文档中的每一个标签的内容信息。0115通过上述步骤101的处理,XML文档的全部内容都已记录到XML文档向量模型的数据结构中,因此本发明在步骤102和步骤103中,对于XML文档的处理都将变为对于所述XML文档向量模型的处理。在步骤102和步骤103中,对于XML文档的每一个标签内容的访问。

38、就变成了通过下标在XML文档向量模型中访问其中的结构元素。0116在步骤102即第二阶段中,将处理步骤101的XML文档向量模型,并将其中大部分信息根据当前文档采取相应滞后处理策略暂不处理,记录滞后处理信息的下标标识,还可以进一步记录该滞后处理信息对应的父结构的处理上下文信息,以在步骤103中即第三阶段直接利用所记录的上下文信息处理对应的结构元素。0117图3为本发明一种实施例中所述第二阶段即步骤102的详细处理流程图。假设在该实施例中,已经构建了一个包含N个结构元素的XML文档向量模型为VECTORN,C为当前处理的结构元素下标,S为当前子结构元素下标。参见图3,该流程具体包括0118步骤3。

39、1、将所述XML文档向量模型的第一个结构元素作为当前结构元素,构建该结构元素对应的处理上下文作为当前处理上下文,在这里将C赋值为0。0119步骤32、在当前处理上下文中进行当前结构元素起始阶段的处理;这里可以包括对当前结构元素的属性信息VECTORCMP_ATTRIBUTELIST的处理,及其它相关的处理。0120步骤33、在当前处理上下文中进行当前结构元素起始内容的处理,并为当前子结构元素下标赋值,即对VECTORCM_BEGINCONTENT信息的处理,并将S赋值为C1。0121步骤34、判断当前子结构元素下标是否在当前结构元素的子结构元素范围内,即S是否大于等于C1且小于等于CVECTO。

40、RCM_COUNT,如果是则进入到步骤39,否则进入到步骤35。0122步骤35、在当前处理上下文中进行当前结构元素对应的结束内容的处理操作,即处理VECTORCM_ENDCONTENT信息。0123步骤36、在当前处理上下文中进行当前结构元素对应的结束阶段的处理,通常是根据需要进行一些清理及其它相关的操作。0124步骤37、判断当前结构元素是否为根结构元素,即C是否为0,如果是则结束本流程,返回处理结果给用户,否则进入步骤38。0125步骤38、将当前子结构元素下标设为当前结构元素的兄弟结构元素下标,即SCVECTORCM_COUNT1,并返回到当前结构元素的父结构元素的处理上下文中,即CC。

41、VECTORCM_DISTANCE,之后进入步骤34;0126步骤39、依据预设的处理策略信息,判断当前子结构元素是否可以滞后处理,如果是则进入步骤310,否则进入步骤311;0127此处,所述的滞后处理策略信息包括判断当前处理的信息是否为后继处理过程中的必须项也就是说后继处理过程中不依赖当前需滞后处理的信息,如果不是必须项,且不是同等级信息中的首项也就是说当前处理的标签的父标签已有相关相类同的标签被处理,则可滞后处理。此处举例说明该滞后处理策略,如在一个开放文档格式ODF,OPENDOCUMENTFORMAT的电子表格中,对于多个表内容所对应的结构元素,第一个表内容可以说明书CN102004。

42、722ACN102004735A8/12页13先进行处理;而对于第二个/第三个表内容对应的结构元素可以将其设为滞后处理内容。当然,在另外的实施例中,所述滞后处理策略信息也可以不按上述信息设置,而是可以根据具体文档情况来设置。0128步骤310、记录当前子结构元素下标的值,同时可以记录该子结构元素的父结构的处理上下文,以备第三阶段进行处理,之后将当前子结构元素下标改为下一子结构元素位置,即SSVECTORSM_COUNT1,进入步骤34。在另一种实施例中,本步骤也可以只记录当前子结构元素下标的值,在后续第三阶段的处理中根据该子结构元素下标构建出其父结构的处理上下文。0129步骤311、将当前处理。

43、上下文进行相应的处理,以备当前子结构元素处理完后步骤38使用,然后将当前子结构元素作为当前处理结构元素,即CS,并构建当前处理结构元素对应的处理上下文作为当前处理上下文,进入步骤32。0130通过上述步骤102即第二阶段,可以在处理XML文档的过程中只处理一部分内容就先返回结果信息给使用者,从而减少用户为获得结果信息而等待的时间。然后在后续的步骤103即第三阶段中,用户浏览或使用已经获得的结果信息时,应用程序再分批次的将未处理完的内容处理提供给用户。0131在步骤103即第三阶段中具体处理上述需滞后处理的信息。在上述第二阶段的步骤310中已经保留了需滞后处理的子结构元素下标及其父结构的处理上下。

44、文,因此在第三阶段需要再对那些已保留下的未处理的内容进行处理。0132在第三阶段中即步骤103中,可以分别针对所记录的每个滞后处理信息的下标进行处理,图4为所述第三阶段中针对所记录的某个滞后处理信息的下标进行处理的详细处理流程图。在第三阶段,可以按照所记录的滞后处理信息的下标的编号顺序分别执行图4流程进行处理,也可以不按编号顺序,而是按照指定的策略顺序分别执行图4流程。参见图4,针对所记录的每个子结构元素下标,分别执行如下步骤0133步骤41、将该子结构元素下标作为当前子结构元素下标,将所记录的该子结构元素对应父结构的处理上下文作为当前处理上下文。0134如果在步骤310中只记录了子结构元素下。

45、标而没有记录其父结构的处理上下文,则在步骤41中进一步构造出该子结构元素的父结构的处理上下文,将该处理上下文作为当前处理上下文。0135步骤42、将当前子结构元素下标作为当前处理结构元素下标,即CS,并构建该结构元素对应的处理上下文,将该处理上下文作为当前处理上下文。0136步骤43、在当前处理上下文中进行当前结构元素起始阶段的处理。此处可以包括对当前结构元素的属性信息VECTORCMP_ATTRIBUTELIST的处理,及其它相关的处理。0137步骤44、在当前处理上下文中进行当前结构元素起始内容的处理,并为当前子结构元素下标赋值;即对VECTORCM_BEGINCONTENT信息进行处理,。

46、并将S赋值为C1。0138步骤45、判断当前子结构元素下标是否在当前结构元素的子结构元素范围内,即S大于等于C1且小于等于CVECTORCM_COUNT,如果是则进入到步骤42,否则进入到步骤46。0139步骤46、在当前处理上下文中进行当前结构元素对应的结束内容的处理,即说明书CN102004722ACN102004735A9/12页14VECTORCM_ENDCONTENT信息的处理。0140步骤47、在当前处理上下文中进行当前结构元素对应的结束阶段的处理,通常是根据需要进行一些清理及其它相关的操作。0141步骤48、判断当前结构元素下标是否为步骤41所述的滞后处理子结构元素下标;如果是则。

47、结束本流程。否则进入步骤49。0142步骤49、将当前子结构元素下标设为当前结构元素的兄弟结构元素下标,即SCVECTORCM_COUNT1;并返回到当前结构元素的父结构元素的处理上下文中,即CCVECTORCM_DISTANCE;之后进入步骤45。0143下面通过一个示例XML文档的处理过程,对本发明所述各个阶段的过程进行进一步详细的描述。该XML文档如下01440145BEGINCONTENT1ENDCONTENT10146BEGINCONTENT2ENDCONTENT20147BEGINCONTENT3ENDCONTENT30148BEGINCONTENT4ENDCONTENT40149。

48、BEGINCONTENT5ENDCONTENT50150BEGINCONTENT6ENDCONTENT601510152图5为现有SAX事件驱动处理上述XML文档实例的示意图。参见图5,在处理这样一个XML文档时,在现有的SAX事件驱动过程中其处理流程必须通过一个个标签间的连续跳转才行,是一种流线形事件驱动处理,为一个不掉的阻塞式处理过程。这样在处理过程中,面对着多个重复的标签,如果对于标签的处理时间很长,这样整个文档的处理过程将会非常漫长。但现阶段的处理无法跳过每一个过程。0153然而利用本发明的方法,在处理上述这样一个XML文档如文字处理时,可以先行只处理第一段的内容,就可以将结果较快的显。

49、示给用户,而当用户在阅读已显示内容时,程序可以分批处理并逐步返回结果给用户。具体的过程如下。0154首先,在第一阶段,通过SAX的事件驱动过程解析得到一个如图6所示的可由下标访问的数据结构,即XML文档向量模型。如图2A图2D所示,每个事件驱动的具体过程表述如下0155对所述XML文档进行SAX事件驱动分析过程,最初驱动起始文档事件建立或清理一个可以通过下标访问的数据结构,初始化当前处理标签下标变量,例如初始化下标变量为0。0156接着遇到起始标签,驱动起始标签事件,包括构建一个新标签的结构元素,并对该新建对象即当前新建的这个结构元素的顺序编号M_LOCAL赋值为0,对该新建对象的到父标签距离M_DISTANCE赋值为0,对该新建对象的标签名称M_NAME赋值为A,属性MP_ATTRIBUTELIST赋值为NAMEA,并将该新建结构元素加入到可用下标访问的数据结构中,如图6中的M_LOCAL为0的那一行;变更当前处理下标为当前对象的顺序编号M_LOCAL的值0。0157接着遇到起始标签,此时驱动起始标签事件,包括构建一个说明书CN102004722ACN102004735A10/12页15新标签的结构元素,并对该新建对象的顺序编号赋值为1,对该新建对象的到父标签距离赋值为1,对该新建对象的标签名称赋值为B,属性赋值为NAMEB1,将新建结构元素。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 物理 > 计算;推算;计数


copyright@ 2017-2020 zhuanlichaxun.net网站版权所有
经营许可证编号:粤ICP备2021068784号-1