存储文件的解析方法和装置与流程

文档序号:11155176阅读:754来源:国知局
存储文件的解析方法和装置与制造工艺

本发明涉及计算机技术领域,尤其涉及一种存储文件的解析方法和装置。



背景技术:

在现有的技术方案中,将存储文件的内容显示到交互式电子白板的UI上,是通过将该存储文件的格式从存储格式直接解析为内存中的一种数据结构格式,即内存模型,并对内存模型进行渲染来实现的。由于现有技术中的解析过程是将文件的格式从存储格式直接解析为内存模型,因此,不管是文件的存储格式发生变化,抑或是内存模型发生变化,均需要对解析过程的实现逻辑进行修改。例如,在将xml文件的内容显示至交互式电子白板的UI上时,使用解析逻辑a将该xml文件解析为内存模型,而在存储文件中增加一种json类型的文件之后,在将json文件的内容显示至交互式电子白板的UI上时,则需要先将解析逻辑a修改为能够解析xml文件和json文件的解析逻辑b之后,再将该json文件解析为内存模型。再例如,在将存储文件解析为内存模型A时,采用的是解析逻辑c,但是在内存模型中新增一个内存模型B以实现新的功能之后,则需要对解析逻辑c进行修改以使部分存储文件能够被解析为内存模型A,同时另一部分存储文件能够被解析为内存模型B。因此,现有的技术方案导致交互式电子白板上的软件的兼容性差,实现格式兼容的过程复杂且困难。



技术实现要素:

本发明提出一种存储文件的解析方法和装置,能够提高设备对文件格式的兼容性,且使得实现文件格式兼容的过程容易、简单。

本发明提供的一种存储文件的解析方法,具体包括:

读取存储文件;其中,所述存储文件中包括与所述存储文件的格式所对应的解析逻辑识别码;

根据预先设置的与所述解析逻辑识别码所对应的解析逻辑,将所述存储文件解析为中间格式数据结构;其中,所述中间格式数据结构中包括与所述存储文件中的各个内容元素分别对应的元素识别码;

根据预先设置的与所述元素识别码所共同对应的转换逻辑,将所述中间格式数据结构转换为内存存储文件;其中,所述内存存储文件为所述存储文件在内存中的映射。

进一步地,所述根据预先设置的与所述解析逻辑识别码所对应的解析逻辑,将所述存储文件解析为中间格式数据结构,具体包括:

根据所述解析逻辑识别码,从预先设置的解析管理器中获取所述解析逻辑识别码所对应的所述解析逻辑;

根据所述解析逻辑,将所述存储文件解析为所述中间格式数据结构。

进一步地,所述解析逻辑中包括第一解析逻辑和第二解析逻辑;

所述根据所述解析逻辑,将所述存储文件解析为所述中间格式数据结构,具体包括:

根据所述第一解析逻辑,调用与所述存储文件的格式所对应的格式解析器,将所述存储文件解析为相应的格式数据结构;

根据所述第二解析逻辑,对所述格式数据结构的节点引用关系进行修改,将所述格式数据结构解析为所述中间格式数据结构。

进一步地,所述根据预先设置的与所述元素识别码所共同对应的转换逻辑,将所述中间格式数据结构转换为内存存储文件,具体包括:

根据所述元素识别码,从预先设置的转换管理器中获取所述元素识别码所共同对应的转换逻辑;

根据所述转换逻辑,对所述中间格式数据结构进行递归,将所述中间格式数据结构转换为所述内存存储文件。

进一步地,在所述根据预先设置的与所述元素识别码所共同对应的转换逻 辑,将所述中间格式数据结构转换为内存存储文件之后,还包括:

将所述内存存储文件中的各个内容元素渲染至显示屏中显示。

相应地,本发明还提供了一种存储文件的解析装置,具体包括:

存储文件读取模块,用于读取存储文件;其中,所述存储文件中包括与所述存储文件的格式所对应的解析逻辑识别码;

存储文件解析模块,用于根据预先设置的与所述解析逻辑识别码所对应的解析逻辑,将所述存储文件解析为中间格式数据结构;其中,所述中间格式数据结构中包括与所述存储文件中的各个内容元素分别对应的元素识别码;以及,

中间格式数据结构转换模块,用于根据预先设置的与所述元素识别码所共同对应的转换逻辑,将所述中间格式数据结构转换为内存存储文件;其中,所述内存存储文件为所述存储文件在内存中的映射。

进一步地,所述存储文件解析模块,具体包括:

解析逻辑获取单元,用于根据所述解析逻辑识别码,从预先设置的解析管理器中获取所述解析逻辑识别码所对应的所述解析逻辑;以及,

文件解析单元,用于根据所述解析逻辑,将所述存储文件解析为所述中间格式数据结构。

进一步地,所述解析逻辑中包括第一解析逻辑和第二解析逻辑;

所述文件解析单元,具体包括:

第一解析子单元,用于根据所述第一解析逻辑,调用与所述存储文件的格式所对应的格式解析器,将所述存储文件解析为相应的格式数据结构;以及,

第二解析子单元,用于根据所述第二解析逻辑,对所述格式数据结构的节点引用关系进行修改,将所述格式数据结构解析为所述中间格式数据结构。

进一步地,所述中间格式数据结构转换模块,具体包括:

转换逻辑获取单元,用于根据所述元素识别码,从预先设置的转换管理器中获取所述元素识别码所共同对应的转换逻辑;以及,

格式转换单元,用于根据所述转换逻辑,对所述中间格式数据结构进行递 归,将所述中间格式数据结构转换为所述内存存储文件。

进一步地,所述存储文件的解析装置,还包括:

渲染显示模块,用于将所述内存存储文件中的各个内容元素渲染至显示屏中显示。

实施本发明,具有如下有益效果:

本发明提供的存储文件的解析方法及装置,通过根据与存储文件的格式相对应的解析逻辑,将存储文件解析为中间格式数据结构,并且根据与该中间格式数据结构中的内容元素相对应的转换逻辑,将该中间格式数据结构转换为内存存储文件,从而使得存储文件的格式的变化与存储文件的内容的变化相互隔离,即在解析过程能够对多种不同格式的存储文件进行解析,而不管该存储文件中包括何种内容元素,在转换过程能够对多种包含不同内容元素的中间格式数据结构进行转换,而不管相对应的存储文件为何种格式。因此,本发明实施例提供的存储文件的解析方法能够提高设备对文件格式的兼容性。同时,由于当存储文件的格式发生变化时只需添加新的解析逻辑,当存储文件的内容元素发生变化时只需添加新的转换逻辑,因此实现格式兼容的过程容易、简单。

附图说明

图1是本发明提供的存储文件的解析方法的一个实施例的流程示意图;

图2是本发明提供的存储文件的解析方法的一个实施例的整数X属性所对应的中间格式的示意图;

图3是本发明提供的存储文件的解析方法的一个实施例的坐标点Point属性所对应的中间格式的示意图;

图4是本发明提供的存储文件的解析方法的一个实施例的背景Background属性的类型为颜色时所对应的中间格式的示意图;

图5是本发明提供的存储文件的解析方法的一个实施例的背景Background属性的类型为图片时所对应的中间格式的示意图;

图6是本发明提供的存储文件的解析方法的一个实施例的坐标点数组Points属性所对应的中间格式的示意图;

图7是本发明提供的存储文件的解析方法的一个实施例的树型的中间格式数据结构的示意图;

图8是本发明提供的存储文件的解析方法的一个实施例的解析过程的流程示意图;

图9是本发明提供的存储文件的解析方法的一个实施例的转换过程的流程示意图;

图10是本发明提供的存储文件的解析装置的一个实施例的结构示意图。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

参见图1,是本发明提供的存储文件的解析方法的一个实施例的流程示意图,包括步骤S11至S13,具体如下:

S11:读取存储文件;其中,所述存储文件中包括与所述存储文件的格式所对应的解析逻辑识别码;

S12:根据预先设置的与所述解析逻辑识别码所对应的解析逻辑,将所述存储文件解析为中间格式数据结构;其中,所述中间格式数据结构中包括与所述存储文件中的各个内容元素分别对应的元素识别码;

S13:根据预先设置的与所述元素识别码所共同对应的转换逻辑,将所述中间格式数据结构转换为内存存储文件;其中,所述内存存储文件为所述存储文件在内存中的映射。

需要说明的是,本发明所提供的方法主要由解析过程和转换过程组成,即 在将某一存储文件解析并转换为内存存储文件时,先根据相应的解析逻辑将该存储文件解析为对应的中间格式数据结构后,再根据相应的转换逻辑将该中间格式数据结构转换为内存存储文件。解析过程所采用的解析逻辑由所解析的存储文件的格式决定。转换过程所采用的转换逻辑由所转换的中间格式数据结构中的内容元素共同决定。

需要进一步说明的是,存储文件的格式可以为xml格式、json格式或者svg格式等。中间格式数据结构可以为树型结构,也可以为链表、堆栈等其他类型的数据结构。

以树型的中间格式数据结构为例说明中间格式数据结构中的节点引用关系。该中间格式数据结构中的每个节点中均包括Name,Value和Children三个项,分别表示节点的名称、节点的值和节点的子节点。

当某一节点表示的属性为整数、小数、字符串等基础数据类型时,该节点的Name值为该属性的名称,该节点的Value值为该属性的值,该节点的Children值为空。例如:当属性为X=100时,该属性所对应的中间格式如图2所示。

当某一节点表示的属性为复合数据类型,即该属性为由若干单一属性组成的复合属性时,该节点的Name值为该属性的名称,该节点的Value值为空,该节点的Children指向表示各个单一属性的节点。例如,当属性为坐标点Point(100,200)时,该属性由单一属性cx=100和单一属性cy=200组成,因此该属性所对应的中间格式如图3所示。

当某一节点表示的属性可能是基础数据类型,也可能是复合数据类型时,该节点的Name值为该属性的名称,该节点的Value值为空,该节点的Children指向表示该属性的具体的数据类型和内容的节点。例如,当属性为背景Background时,该属性的类型可能是颜色,也可能是图片。当该属性的类型为颜色时,该属性所对应的中间格式如图4所示。

当该属性的类型为图片时,该属性所对应的中间格式如图5所示。

当某一节点表示的属性为数组类型时,该节点的Name值为该属性的名称,该节点的Value值为空,该节点的Children指向表示该属性中的各个数组元素的 属性的节点。例如,当属性为由两个坐标点Point组成的Points数组时,该属性所对应的中间格式如图6所示。

在一个优选的实施方式中,当需要将某一存储文件解析并转换为内存存储文件时,计算机读取该存储文件,并根据该存储文件中的解析逻辑的版本号所对应的解析逻辑,即解析逻辑识别码所对应的解析逻辑,将该存储文件解析为中间格式数据结构。随后,计算机遍历该中间格式数据结构,并根据其中的各个内容元素的元素识别码所共同对应的转换逻辑,将该中间格式数据结构转换为内存存储文件。内存存储文件为存储文件在内存中的映射。其中,中间格式数据结构可以为树型结构,也可以为链表、堆栈等其他类型的数据结构。当中间格式数据结构为树型结构时,存储文件经过解析后,其中的各个内容元素分别对应解析为该树型结构中的具有共同父节点的各个子树,各个子树的根节点中包括分别对应的内容元素的元素识别码,各个子树中的各个子节点分别为其父节点的属性。

例如,假设某一xml格式的存储文件如下:

其中包括内容元素<iwb:shape>和内容元素<iwb:magnifier>,分别表示一个椭圆和一个放大镜。当需要将该存储文件解析并转换为内存存储文件时,计算 机读取该存储文件,并根据该存储文件中的解析逻辑识别码获得相对应的能够解析xml格式的文件的解析逻辑,并根据该解析逻辑将存储文件解析为如图7所示的树型的中间格式数据结构。

其中,内容元素<iwb:shape>和内容元素<iwb:magnifier>分别对应解析为共同父节点为elements节点的两棵子树。内容元素<iwb:shape>所对应的子树的根节点中的节点名称为内容元素<iwb:shape>的元素识别码,即iwb:shape,内容元素<iwb:shape>的属性对应解析为该根节点的子节点或者孙节点。内容元素<iwb:magnifier>所对应的子树的根节点中的节点名称为内容元素<iwb:magnifier>的元素识别码,即iwb:magnifier,内容元素<iwb:magnifier>的属性对应解析为该根节点的子节点或者孙节点。

在将该中间格式数据结构转换为内存存储文件时,计算机遍历该中间格式数据结构,根据其中的所有的元素识别码,即iwb:shape和iwb:magnifier获得共同对应的转换逻辑,该转换逻辑既能够转换内容元素<iwb:shape>所对应的子树,又能够转换内容元素<iwb:magnifier>所对应的子树。根据该转换逻辑,将该中间格式数据结构转换为相应的内存存储文件,该内存存储文件中包括一个shape内容元素及其相应的属性,以及一个magnifier内容元素及其相应的属性。

由此可见,通过根据与存储文件的格式相对应的解析逻辑,将存储文件解析为中间格式数据结构,并且根据与该中间格式数据结构中的内容元素相对应的转换逻辑,将该中间格式数据结构转换为内存存储文件,从而使得存储文件的格式的变化与存储文件的内容的变化相互隔离,即在解析过程能够对多种不同格式的存储文件进行解析,而不管该存储文件中包括何种内容元素,在转换过程能够对多种包含不同内容元素的中间格式数据结构进行转换,而不管相对应的存储文件为何种格式。因此,本发明实施例提供的存储文件的解析方法能够提高设备对文件格式的兼容性。同时,由于当存储文件的格式发生变化时只需添加新的解析逻辑,当存储文件的内容元素发生变化时只需添加新的转换逻辑,即可将具有新格式或者具有新内容元素的存储文件解析并转换为相应的内存存储文件,因此实现文件格式兼容的过程容易、简单。

进一步地,所述根据预先设置的与所述解析逻辑识别码所对应的解析逻辑,将所述存储文件解析为中间格式数据结构,具体包括:

根据所述解析逻辑识别码,从预先设置的解析管理器中获取所述解析逻辑识别码所对应的所述解析逻辑;

根据所述解析逻辑,将所述存储文件解析为所述中间格式数据结构。

需要说明的是,解析逻辑由解析管理器进行存储和管理,解析管理器中的每个解析逻辑均具有唯一的版本号,即解析逻辑识别码。每当增加一种新的存储文件的格式时,需要预先在解析管理器中添加相对应的解析逻辑。当需要将存储文件解析为中间格式数据结构时,计算机在解析管理器中查找到该存储文件中的解析逻辑识别码所对应的解析逻辑并获取该解析逻辑,并根据该解析逻辑将存储文件解析为中间格式数据结构。

例如,如图8所示为本实施方式的解析过程的流程示意图,解析管理器81中存储有解析逻辑A和解析逻辑B。当需要将格式为A的存储文件A解析为中间格式数据结构82时,则从解析管理器81中获取解析逻辑A,并根据该解析逻辑A对存储文件A进行解析。当需要将格式为B的存储文件B解析为中间格式数据结构82时,则从解析管理器81中获取解析逻辑B,并根据该解析逻辑B对存储文件B进行解析。当存储文件中新增加一种格式为C的存储文件C时,则在解析管理器81中添加能够解析该存储文件C的解析逻辑C。

进一步地,所述解析逻辑中包括第一解析逻辑和第二解析逻辑;

所述根据所述解析逻辑,将所述存储文件解析为所述中间格式数据结构,具体包括:

根据所述第一解析逻辑,调用与所述存储文件的格式所对应的格式解析器,将所述存储文件解析为相应的格式数据结构;

根据所述第二解析逻辑,对所述格式数据结构的节点引用关系进行修改,将所述格式数据结构解析为所述中间格式数据结构。

需要说明的是,解析逻辑分为两个部分,即第一解析逻辑和第二解析逻辑。第一解析逻辑与存储文件的格式相对应,用于调用与存储文件的格式相对应的格式解析器,从而将存储文件解析为相应的格式数据结构。第二解析逻辑用于对该格式数据结构进行递归,从而遍历该格式数据结构并且修改其中的节点引用关系,将该格式数据结构进一步解析为中间格式数据结构。其中,格式数据结构可以为树型结构,也可以为链表、堆栈等其他类型的数据结构。不同的存储文件的格式所对应的格式数据结构的节点引用关系可能相同,也可能不相同。

例如,在将某一xml格式的存储文件解析为中间格式数据结构时,先根据解析逻辑中的第一解析逻辑,调用xml格式解析器,将该存储文件解析为xml格式数据结构,即xml树。随后,根据解析逻辑中的第二解析逻辑,对该xml格式数据结构进行递归,从而遍历该xml格式数据结构并且修改其中的节点引用关系,将该xml格式数据结构进一步解析为中间格式数据结构。

在另一个优选的实施方式中,所述根据预先设置的与所述元素识别码所共同对应的转换逻辑,将所述中间格式数据结构转换为内存存储文件,具体包括:

根据所述元素识别码,从预先设置的转换管理器中获取所述元素识别码所共同对应的转换逻辑;

根据所述转换逻辑,对所述中间格式数据结构进行递归,将所述中间格式数据结构转换为所述内存存储文件。

需要说明的是,转换逻辑由转换管理器进行存储和管理,转换管理器中的每个转换逻辑中均具有其能够转换的所有内容元素的元素识别码。每当存储文件中的内容元素发生变化以实现新的功能时,需要预先在转换管理器中添加相对应的转换逻辑。当需要将中间格式数据结构转换为内存存储文件时,在转换管理器中查找到该中间格式数据结构中的每个内容元素的元素识别码所共同对应的转换逻辑并获取该转换逻辑,并根据该转换逻辑,对该中间格式数据结构进行递归,从而将该中间格式数据结构转换为内存存储文件。

例如,如图9所示的本实施方式的转换过程的流程示意图,转换管理器92 中存储有转换逻辑A和转换逻辑B。假设其中的转换逻辑A能够转换包括内容元素a和内容元素b的中间格式数据结构,转换逻辑B能够转换包括内容元素a、内容元素b和内容元素c的中间格式数据结构。当中间格式数据结构91中包括内容元素a和内容元素b时,则从转换管理器92中获取转换逻辑A,并根据该转换逻辑A将该中间格式数据结构91转换为相应的内存存储文件A,转换所得的内存存储文件A中包括内容元素a及其相应的属性,以及内容元素b及其相应的属性。当需要在包括内容元素a和内容元素b的存储文件中增加内容元素d以实现新的功能时,则在转换管理器92中添加能够转换包括内容元素a、内容元素b和内容元素d的中间格式数据结构的转换逻辑C。

进一步地,在所述根据预先设置的与所述元素识别码所共同对应的转换逻辑,将所述中间格式数据结构转换为内存存储文件之后,还包括:

将所述内存存储文件中的各个内容元素渲染至显示屏中显示。

需要说明的是,在将存储文件解析并且转换为内存存储文件之后,对该内存存储文件中的内容元素进行渲染,使之在显示屏中显示。

例如,某一存储文件中包括表示椭圆的内容元素a和表示放大镜的内容元素b,则与之相对应的内存存储文件中包括内容元素a及其相应的属性,以及内容元素b及其相应的属性。在对该内存存储文件进行渲染之后,设备的显示屏上显示一个椭圆和一个放大镜。

本发明实施例提供的存储文件的解析方法,通过根据与存储文件的格式相对应的解析逻辑,将存储文件解析为中间格式数据结构,并且根据与该中间格式数据结构中的内容元素相对应的转换逻辑,将该中间格式数据结构转换为内存存储文件,从而使得存储文件的格式的变化与存储文件的内容的变化相互隔离,即在解析过程能够对多种不同格式的存储文件进行解析,而不管该存储文件中包括何种内容元素,在转换过程能够对多种包含不同内容元素的中间格式数据结构进行转换,而不管相对应的存储文件为何种格式。因此,本发明实施 例提供的存储文件的解析方法能够提高设备对文件格式的兼容性。同时,由于当存储文件的格式发生变化时只需添加新的解析逻辑,当存储文件的内容元素发生变化时只需添加新的转换逻辑,因此实现格式兼容的过程容易、简单。

相应地,本发明还提供一种存储文件的解析装置,能够实现上述实施例中的存储文件的解析方法的所有流程。

参见图10,是本发明提供的存储文件的解析装置的一个实施例的结构示意图,具体如下:

存储文件读取模块01,用于读取存储文件;其中,所述存储文件中包括与所述存储文件的格式所对应的解析逻辑识别码;

存储文件解析模块02,用于根据预先设置的与所述解析逻辑识别码所对应的解析逻辑,将所述存储文件解析为中间格式数据结构;其中,所述中间格式数据结构中包括与所述存储文件中的各个内容元素分别对应的元素识别码;以及,

中间格式数据结构转换模块03,用于根据预先设置的与所述元素识别码所共同对应的转换逻辑,将所述中间格式数据结构转换为内存存储文件;其中,所述内存存储文件为所述存储文件在内存中的映射。

进一步地,所述存储文件解析模块02,具体包括:

解析逻辑获取单元,用于根据所述解析逻辑识别码,从预先设置的解析管理器中获取所述解析逻辑识别码所对应的所述解析逻辑;以及,

文件解析单元,用于根据所述解析逻辑,将所述存储文件解析为所述中间格式数据结构。

进一步地,所述解析逻辑中包括第一解析逻辑和第二解析逻辑;

所述文件解析单元,具体包括:

第一解析子单元,用于根据所述第一解析逻辑,调用与所述存储文件的格 式所对应的格式解析器,将所述存储文件解析为相应的格式数据结构;以及,

第二解析子单元,用于根据所述第二解析逻辑,对所述格式数据结构的节点引用关系进行修改,将所述格式数据结构解析为所述中间格式数据结构。

在另一个优选的实施方式中,所述中间格式数据结构转换模块03,具体包括:

转换逻辑获取单元,用于根据所述元素识别码,从预先设置的转换管理器中获取所述元素识别码所共同对应的转换逻辑;以及,

格式转换单元,用于根据所述转换逻辑,对所述中间格式数据结构进行递归,将所述中间格式数据结构转换为所述内存存储文件。

进一步地,所述存储文件的解析装置,还包括:

渲染显示模块,用于将所述内存存储文件中的各个内容元素渲染至显示屏中显示。

本发明实施例提供的存储文件的解析装置,通过根据与存储文件的格式相对应的解析逻辑,将存储文件解析为中间格式数据结构,并且根据与该中间格式数据结构中的内容元素相对应的转换逻辑,将该中间格式数据结构转换为内存存储文件,从而使得存储文件的格式的变化与存储文件的内容的变化相互隔离,即在解析过程能够对多种不同格式的存储文件进行解析,而不管该存储文件中包括何种内容元素,在转换过程能够对多种包含不同内容元素的中间格式数据结构进行转换,而不管相对应的存储文件为何种格式。因此,本发明实施例提供的存储文件的解析方法能够提高设备对文件格式的兼容性。同时,由于当存储文件的格式发生变化时只需添加新的解析逻辑,当存储文件的内容元素发生变化时只需添加新的转换逻辑,因此实现格式兼容的过程容易、简单。

以上所述是本发明的优选实施方式,应当指出,对于本技术领域的普通技 术人员来说,在不脱离本发明原理的前提下,还可以作出若干改进和润饰,这些改进和润饰也视为本发明的保护范围。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1