文件对比装置和文件对比方法制造方法及图纸

技术编号:9545350 阅读:77 留言:0更新日期:2014-01-08 21:37
本发明专利技术提供了一种文件对比装置和一种文件对比方法,其中,所述装置包括:元素节点选择模块,用于从至少一个包含元素节点的文件中选择至少一个待对比的元素节点;解析文件配置模块,用于根据元素节点选择模块选择的至少一个待对比的元素节点的名称,以及每个待对比的元素节点的关键字信息,配置用于解析所述至少一个文件的解析文件;文件解析模块,用于根据解析文件,对至少一个文件中的每个文件进行解析,得到每个文件的至少一个对比单元;文件对比模块,用于通过每个文件的至少一个对比单元将每个文件与所述至少一个文件中的其他文件进行对比。通过本发明专利技术的技术方案,可以将文件的对比定位到文件中元素节点的对比,提高了对比结果的准确性。

【技术实现步骤摘要】
文件对比装置和文件对比方法
本专利技术涉及计算机
,具体而言,涉及一种文件对比装置和一种文件对比方法。
技术介绍
可扩展标记语言(ExtensibleMarkupLanguage,XML)是一种用于标记电子文件使其具有结构性的标记语言,可以用来标记数据、定义数据类型,并且允许用户对自己的标记语言进行定义。XML语言广泛应用于数据存储和交换,比如常见的配置文件,都是以XML方式进行存储的。XML语言还应用于JavaMessageService和WebServices等技术作为数据交换。XML语言对于系统来说至关重要,但是,在系统进行部署、升级、出现异常或者运行过程中,如果XML语言的内容发生改变,则开发者与维护者需要检查大量的XML配置文件和相应的数据文件在变化前后的区别,工作量巨大。普通的文件对比工具,只能按行来对比,不能够精确对比XML文件的差异。如图1所示,两个XML文件只是数据节点的位置不同,但是文件对比工具就会误报两个数据节点都有差异。因此,如何提高XML文件对比结果的准确性成为亟待解决的技术问题。
技术实现思路
本专利技术正是基于上述技术问题,提出了一种新的文件对比方案,可以将文件的对比定位到文件中元素节点的对比,提高了对比结果的准确性。有鉴于此,本专利技术提出了一种文件对比装置,包括:元素节点选择模块,用于从至少一个包含元素节点的文件中选择至少一个待对比的元素节点;解析文件配置模块,用于根据所述元素节点选择模块选择的所述至少一个待对比的元素节点的名称,以及每个所述待对比的元素节点的关键字信息,配置用于解析所述至少一个文件的解析文件;文件解析模块,用于根据所述解析文件,对所述至少一个文件中的每个文件进行解析,得到所述每个文件的至少一个对比单元;文件对比模块,用于通过所述每个文件的至少一个对比单元将所述每个文件与所述至少一个文件中的其他文件进行对比。在该技术方案中,根据选择出的待对比的元素节点生成的配置文件,将包含元素节点的至少一个文件解析为对比单元,通过每个文件中的对比单元将每个文件与至少一个文件中的其他文件进行对比,可以使文件在进行对比时,定位到元素节点的对比,换句话说,如果其中一个元素节点在两个文件中的内容一样,只是位置不一样,现有的对比工具也会进行报错,但是由于该技术方案定位到了元素节点的对比,因此,只要元素节点在两个文件中的内容一样,即便是位置不一样也不会进行报错,提高了文件对比的准确度。其中从至少一个包含元素节点的文件中选择的至少一个待对比的元素节点可以是从至少一个文件中的其中一个或多个文件中选择的,而且从每个文件中也可以选择一个或多个待对比的元素节点,比如有三个文件,每个文件中包含了三个元素节点,则选择出的元素节点可以是从三个文件中的每个文件中都选择一个或多个元素节点,也可以只是从一个文件中选择一个或多个元素节点,还可以从两个文件中分别选择一个或多个元素节点。由于元素节点的关键字信息可以对元素节点进行唯一标识,因此根据指定元素节点的名称与该指定元素节点的关键字信息配置的解析文件,可以将包含该指定元素节点的文件中相应的元素节点解析为对比单元,若该文件中不包含该指定的元素节点,则不会解析出该指定元素节点对应的对比单元。在上述技术方案中,优选地,还包括:判断模块210,用于对任一文件的任一对比单元中是否包含任一所述待对比的元素节点的关键字信息进行判断,在判定所述任一文件的任一对比单元中包含任一所述待对比的元素节点的关键字信息时,将所述任一对比单元加入所述任一文件的待对比列表中;所述文件对比模块,还用于根据所述每个文件的待对比列表中的对比单元将所述每个文件与所述至少一个文件中的其他文件进行对比。在该技术方案中,文件中的元素节点可能包含子元素节点和属性节点,在解析之后出现的对比单元(子元素节点或属性节点对应的对比单元)中,可能并不存在关键字信息,对于这种不存在关键字信息的对比单元不单独进行比较,只对其上级节点(即子元素节点或属性节点的直接上级节点)对应的对比单元进行对比。在上述技术方案中,优选地,所述文件对比模块包括:对比单元选择模块和查找模块,其中,所述对比单元选择模块,用于从所述任一文件的所述待对比列表中选择指定对比单元;所述查找模块,用于根据所述指定对比单元中的所述关键字信息从所述至少一个文件中的任一其他文件中查找包含所述关键字信息的对比单元;所述文件对比模块,还用于在所述查找模块从所述任一其他文件中查找到包含所述关键字信息的对比单元时,将所述指定对比单元与所述查找到的对比单元进行对比;或在所述查找模块从所述任一其他文件中未查找到包含所述关键字信息的对比单元时,判定所述任一其他文件中不包含所述指定对比单元。在该技术方案中,对比单元中包含了相应元素节点的关键字信息,而关键字信息可以对相应的元素节点进行唯一的标识,因此通过指定对比单元中的关键字信息,从其他文件中查找包含该关键字信息的对比单元,可以将不同文件中同一元素节点的内容进行对比,由于将文件的对比定位到元素节点的对比,因此提高了对比结果的准确性。而通过建立待对比列表,将包含关键字信息的对比单元加入待对比列表中,可以在进行对比时,方便地从待对比列表中查找相应的对比单元进行对比,避免了从多个排列混乱和/或不包含关键字的对比单元中查找相应的对比单元,缩减了查找相应对比单元的时间,从而缩短了对比单元进行对比的时间。在上述技术方案中,优选地,还包括:显示模块,用于在所述文件对比模块将所述任一文件的所述待对比列表中的所有对比单元都与所述任一其他文件中相应的对比单元进行对比之后,将所述任一文件与所述任一其他文件的对比结果按照预设的顺序进行显示。在该技术方案中,通过将文件的对比结果按预设顺序进行显示,可以使文件对比的结果直观地呈现给用户进行查看,以便于用户后续的操作。优选地,预设的顺序为其中一个文件中多个元素节点排列的顺序,比如,在一个文件中元素节点Widget排列在元素节点View之前,则在显示对比结果时,将元素节点Widget的对比结果显示在元素节点View的对比结果之前。同时,由于对比过程中定位到了元素节点的对比,因此显示出的对比结果也无需人工进行分析,避免了按行进行对比,再由开发、维护人员对对比结果进行分析,减少了开发、维护人员的工作量。在上述技术方案中,优选地,所述文件为XML文件。在该技术方案中,由于XML语言用途广泛,元素节点的名称和其关键字信息可以自定义进行配置,因此使得该技术方案可以对所有符合可扩展标记语言(ExtensibleMarkupLanguage,XML)规范的文件都可以进行对比分析。在对比分析的过程中,避免了由于元素节点的顺序、层级不同而出现误报错的问题,同时由于XML文件是结构化数据,因此输出的对比结果可以精确到元素节点的具体属性以及属性值。根据本专利技术的另一方面,还提出了一种文件对比方法,包括:步骤302,从至少一个包含元素节点的文件中选择至少一个待对比的元素节点;步骤304,根据选择的所述至少一个待对比的元素节点的名称,以及每个所述待对比的元素节点的关键字信息,配置用于解析所述至少一个文件的解析文件;步骤306,根据所述解析文件,对所述至少一个文件中的每个文件进行解析,得到所述每个文件的至少一个对比单元;步骤3本文档来自技高网...
文件对比装置和文件对比方法

【技术保护点】
一种文件对比装置,其特征在于,包括:元素节点选择模块,用于从至少一个包含元素节点的文件中选择至少一个待对比的元素节点;解析文件配置模块,用于根据所述元素节点选择模块选择的所述至少一个待对比的元素节点的名称,以及每个所述待对比的元素节点的关键字信息,配置用于解析所述至少一个文件的解析文件;文件解析模块,用于根据所述解析文件,对所述至少一个文件中的每个文件进行解析,得到所述每个文件的至少一个对比单元;文件对比模块,用于通过所述每个文件的至少一个对比单元将所述每个文件与所述至少一个文件中的其他文件进行对比。

【技术特征摘要】
1.一种文件对比装置,其特征在于,包括:元素节点选择模块,用于从至少一个包含元素节点的文件中选择至少一个待对比的元素节点;解析文件配置模块,用于根据所述元素节点选择模块选择的所述至少一个待对比的元素节点的名称,以及每个所述待对比的元素节点的关键字信息,配置用于解析所述至少一个文件的解析文件;文件解析模块,用于根据所述解析文件,对所述至少一个文件中的每个文件进行解析,得到所述每个文件的至少一个对比单元;文件对比模块,用于通过所述每个文件的至少一个对比单元将所述每个文件与所述至少一个文件中的其他文件进行对比。2.根据权利要求1所述的文件对比装置,其特征在于,还包括:判断模块210,用于对任一文件的任一对比单元中是否包含任一所述待对比的元素节点的关键字信息进行判断,在判定所述任一文件的任一对比单元中包含任一所述待对比的元素节点的关键字信息时,将所述任一对比单元加入所述任一文件的待对比列表中;所述文件对比模块,还用于根据所述每个文件的待对比列表中的对比单元将所述每个文件与所述至少一个文件中的其他文件进行对比。3.根据权利要求2所述的文件对比装置,其特征在于,所述文件对比模块包括:对比单元选择模块和查找模块,其中,所述对比单元选择模块,用于从所述任一文件的所述待对比列表中选择指定对比单元;所述查找模块,用于根据所述指定对比单元中的所述关键字信息从所述至少一个文件中的任一其他文件中查找包含所述关键字信息的对比单元;所述文件对比模块,还用于在所述查找模块从所述任一其他文件中查找到包含所述关键字信息的对比单元时,将所述指定对比单元与所述查找到的对比单元进行对比;或在所述查找模块从所述任一其他文件中未查找到包含所述关键字信息的对比单元时,判定所述任一其他文件中不包含所述指定对比单元。4.根据权利要求3所述的文件对比装置,其特征在于,还包括:显示模块,用于在所述文件对比模块将所述任一文件的所述待对比列表中的所有对比单元都与所述任一其他文件中相应的对比单元进行对比之后...

【专利技术属性】
技术研发人员:郭鹏
申请(专利权)人:用友软件股份有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1