《信息文档的处理方法及装置.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,将新建结构元素。