CN1297936C - 用来比较两个计算机文件的方法及系统 - Google Patents

用来比较两个计算机文件的方法及系统 Download PDF

Info

Publication number
CN1297936C
CN1297936C CNB2004100564335A CN200410056433A CN1297936C CN 1297936 C CN1297936 C CN 1297936C CN B2004100564335 A CNB2004100564335 A CN B2004100564335A CN 200410056433 A CN200410056433 A CN 200410056433A CN 1297936 C CN1297936 C CN 1297936C
Authority
CN
China
Prior art keywords
source
leaf
target
document
path
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
CNB2004100564335A
Other languages
English (en)
Other versions
CN1581170A (zh
Inventor
罗福慧
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by International Business Machines Corp filed Critical International Business Machines Corp
Publication of CN1581170A publication Critical patent/CN1581170A/zh
Application granted granted Critical
Publication of CN1297936C publication Critical patent/CN1297936C/zh
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/10Text processing
    • G06F40/194Calculation of difference between files
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/10Text processing
    • G06F40/12Use of codes for handling textual entities
    • G06F40/14Tree-structured documents
    • G06F40/143Markup, e.g. Standard Generalized Markup Language [SGML] or Document Type Definition [DTD]

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Health & Medical Sciences (AREA)
  • Artificial Intelligence (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • Computational Linguistics (AREA)
  • General Health & Medical Sciences (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Document Processing Apparatus (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

一种对两个文档,例如XML(可扩展的标记性语言)文件进行比较的方法及其系统,其中每个文档都能被分析成一个DOM(文件对象模型)树。每个树结构都被转换成包括节点的叶路径数组。这些数组于是与标志的相应的匹配节点——可能是完全匹配节点或者是模式匹配节点,进行比较。在报告比较结果时,源文档中所有的不匹配的节点被报告为″删除的节点″,那就是说,其存在于源文档中而不在目标文档中。类似地,目标文档中所有的不匹配的节点被报告为″添加的节点″,那就是说,其存在于目标文档中而非源文档中。此外,在源和目标文档之间的模式匹配节点被报告为″已修改节点″。

Description

用来比较两个计算机文件的方法及系统
技术领域
本发明一般涉及比较两个均能被分析成DOM(文件对象模型)树的文件。
背景技术
传统的文件比较程序在比较两个文件时不考虑这两个文件的内容的含义。也就是说,这些比较程序将这两个文件看作原始数据,对它们一个字节一个字节地比较,报告它们的差异。当这些文件与例如XML(可扩展标记性语言)这样的面向对象的计算机程序有关时,这种传统方式文件比较的输出将是庞大的。而且这些输出实质上是不可阅读的,并且因此实质上是没用的。
XML是一种相对较新的文档格式,设计来为万维网提供结构信息。XML文档格式在表示文档结构的标签中嵌入内容。XML提供给用户表达文档结构的规则的能力,这种规则统称为XML模式(schema)。XML文件主要包括用于描述数据的元素和属性。因为XML被设计来描述数据、格式项(例如空格、制表符、换行字符,甚至是用户不太关注的元素和属性在XML文件中出现的实际顺序。在比较XML文件时,传统的文件比较应用不考虑这些文件的语法和语义。因此,格式差异和元素以及属性出现顺序的差异都将被报告。这类″差异″报告通常数量很大,但是对于值得做的文件比较来说没有价值。而且它们使得用户难以在庞大的数据中识别出有意义的差别报告,也就是说,有意义的差异被″埋在″不相关的差异之中。
因此,需要有一种方法,用于从句法上和语义上比较两个文档,以报告它们之间的有意义差异,即使当不相关的差异,例如包括于其中的元素的顺序,也存在于这两个文档之间。
发明内容
本发明涉及比较两个均能被分析成DOM(文件对象模型)树的文件。虽然下述论述使用XML文件作为例子,但本发明并不因此受限制,其它计算机文档,例如C++以及Java程序,也应当能够通过本发明进行比较。
根据本发明的一方面,本发明提供了一种用于对源文档和目标文档进行比较的方法,其中每个文档都能被分析成一个DOM(文件对象模型)树,所述方法包括以下步骤:将源文档分析成一个源DOM树以及将目标文档分析成一个目标DOM树;由源DOM树创建一个源叶路径表并且由目标DOM树创建一个目标叶路径表,每个表包括包含节点的叶路径;确定与源叶路径表中的表项完全匹配的目标叶路径表中的表项,以及对于每一个发现的匹配,将相应的源和目标叶路径标记为的完全匹配的;对那些没有被标记为完全匹配的叶路径,确定在源叶路径表中存在的那些叶路径和目标叶路径表中存在的那些叶路径之间是否存在模式匹配;以及将这些文档的比较输出给用户。
根据本发明的另一方面,本发明还提供了一种用于对源文档和目标文档进行比较的系统,其中每个文档都能被分析成一个DOM(文件对象模型)树,所述系统包括:用于将源文档分析成一个源DOM树以及将目标文档分析成一个目标DOM树的装置;用于收源DOM树创建一个源叶路径表的装置,以及用于由目标DOM树创建一个目标叶路径表的装置,每个表均包括包含了节点的叶路径;用于确定与源叶路径表中的表项完全匹配的目标叶路径表中的表项,以及对于每一个发现的匹配,将相应的源和目标叶路径标记为的完全匹配的装置;用于对那些没有被标记为完全匹配的叶路径,确定在源叶路径表中存在的那些叶路径和目标叶路径表中存在的那些叶路径之间是否存在模式匹配的装置;以及用于将这些文档的比较输出给用户的装置。
在下文的论述中,其中一个被比较的文档被指定为″源文档″,另一个文档则被指定为″目标文档″。分别为这些文档创建一个DOM树结构。然后每个树结构被转换成包括节点的叶路径数组,分别是源数组以及目标数组。然后源数组中的每一个叶路径与目标数组中的叶路径进行比较,识别出完全匹配的叶路径。以这种方式进行的叶路径的创建和匹配致使元素和属性在文档中的出现顺序变得不相关,因此克服了现有技术中显著的问题。
比较叶路径时,如果路径中的全部节点都具有一样的模式和值(value),那么就认为叶路径是完全匹配的。如果没有为源叶路径找到一个完全匹配,则尝试去识别出其对应节点可能具有相同模式但不同值的松散匹配的叶路径。在这种松散匹配的叶路径中,可能既有完全匹配节点也有松散匹配节点。
一旦所有的源和目标叶路径都被比较,并且本发明已经识别并标志出所有在这两个文档中的完全匹配和松散匹配的叶路径,系统就输出比较结果。在本发明的各种实施方案中,源文档中所有的未标记的节点被报告为″已删除节点″—其存在于源文档中但是不在目标文档中。类似地,目标文档中所有的未标记的节点被报告为″已添加节点″--其存在于目标文档中但是不在源文档中。在源文档和目标文档之间松散匹配的叶路径被报告为″已修改节点″。
附图说明
附图1A是一个XML文件的实例;
附图1B是与附图1A中XML文件相对应的文件目标模型(DOM);
附图2是与附图1B中DOM模型相对应的叶路径表;
附图3通过流程图举例描述了导出目标比较候选列表的步骤;
附图4通过流程图举例描述了识别完全匹配的目标叶路径的步骤;
附图5通过流程图举例描述了对实现完全匹配的源树节点和目标树节点进行标记的步骤;
附图6和7通过流程图举例描述了对″模式匹配的″以及″完全匹配的″源树节点的识别及报告的步骤;
附图8A和8B是使用本发明的一个实施方案的示例性XML文件;
附图9A和9B是分别与附图8A和8B相对应的DOM模型;
附图10A和10B是分别与附图9A和9B的DOM模型相对应的叶路径表;
附图11A和11B举例说明在每一个源和目标DOM模型中如何识别完全匹配的叶路径;
附图12A和12B举例说明如何在每一个适当的叶路径表中识别出相应叶路径中相匹配的节点;
附图13A,13B,14A,14B,15A,15B,16A,16B,17A,17B,18A和18B更进一步地举例说明如何循环地应用本发明的步骤,产生额外的叶路径″完全匹配″,它们在DOM模型和叶路径表中被识别;
附图19A和19B举例说明没有实现完全匹配的源和目标叶路径,以及将要对其应用一种″模式匹配″算法;
附图20A,20B,21A和21B举例说明了″模式匹配″算法中的一个中间步骤,在其中DOM模型和叶路径表中的完全匹配的节点已经被识别出来;
附图22A和22B举例说明了在DOM模型中″模式匹配″的识别;以及
附图23举例说明本发明的一个实施方案,其中文件比较的结果是通过对原始的XML文件的注解显示的。
具体实施方式
本发明描述了一种用于对两个均能被分析成DoM(文件对象模型)树的文档进行比较的系统及方法。这种文档中除数据内容之外还包括本来已定义的结构。XML文件,C++程序,以及Java程序都是这类文档的实例。以下论述将依据本发明在XML文档方面的应用来描述本发明,但本发明并不受限于此。任何一个能够被分析成DOM树的文档都能够通过这里所述的发明与一个类似的文档进行比较。
附图1A是一个XML文档的实例。附图1B是能通过现有技术中众所周知的分析器容易地得到的一个对应的DOM树。这种分析器的实例可在http://xml.apache.org中找到。在树结构里各种格式项,例如空格,制表符以及换行符均被移除。
对于每一个要对比的文档,它的DOM树都被转换成包括节点的叶路径。附图2举例说明了当附图1B中的DOM树被这样转换后所得到的结果。特别是,6条叶路径通过2到4个节点的路径深度列出。在比较源文档和目标文档时,为每一个文档创建相应的叶路径表。也就是说,创建源表,其表项对应于源文档的叶路径(在这里这些表项指的是″源叶路径″)。类似地,创建目标表,其表项是对应于目标文档的叶路径(在这里这些表项指的是″目标叶路径″)。
在附图3到5所描述的本发明的实施方案中,逐一地和顺序地考察存在于源表中的源叶路径以确定在目标叶路径中是否存在相应的完全匹配。如附图3中所例举的流程图一样,在匹配过程中第一步是创建一个″目标候选列表″,每一个目标候选列表项包括与当前所考察的源叶路径具有相同深度的目标叶路径(目标候选列表中的表项在这里被称为″候选叶路径″)。然后如附图4所述比较目标候选列表中的表项,其中将源叶路径的每一个节点与候选叶路径的每一个节点进行比较。当XML标签,所有的属性名称,以及所有属性值都是一样时,在这些节点之间发生了完全匹配。对于每一个候选叶路径,如果在其节点与源叶路径的相应节点之间没有产生完全匹配,该叶路径则被从候选列表中移除。
对于每一个源叶路径来说,发现完全匹配的尝试会产生两个结果:找到完全匹配(如附图4中的圆圈3所示)或者设置一个″需要模式匹配″标志。在前一种情况下,源路径和匹配的目标叶路径中的每个节点被标记为已匹配,如附图5中所示。
如附图3到5中描述的本发明的实施方案所示,对源表中的源叶路径进行递归搜索,以得到与目标叶路径的完全匹配。一旦对源表中所有源叶路径表项完成了这个查找过程,则任何存在的″模式匹配″即能被确定。仅考察源表和目标表之间的未匹配叶路径以确定这些表的项之间的任何″模式匹配″。附图6和7详细地举例说明了这个过程是如何进行的。通常,松散匹配的叶路径被识别,其中来自源叶路径表中一个表项的至少一个节点与一个目标叶路径表项中的相应节点具有相同的模式和不同的值。在这些松散匹配的叶路径中,可能既有完全匹配的节点也有松散匹配的节点。如果被发现,则叶路径中所有完全匹配的节点都被标记为完全匹配节点,并且所有模式匹配的节点都被标记为松散匹配节点。
一旦模式匹配过程完成,文件比较结果就被输出给用户。特别地,所有与目标文档比较后没有被标记为″已匹配″或″已模式匹配″的源树节点被报告为已删除。类似地,所有与源文档比较后没有被标记为″已匹配″或″已模式匹配″的目标树节点被报告为″添加的″节点。此外,所有已经被标记为已模式匹配的节点被报告为已修改。
发明的示例性应用
以上论述及附图3-7已经讨论了本发明在对比两个文档时的操作。为了更进一步地举例说明本发明,对两个文档进行对比,即附图8A中描述的源XML文档和附图8B中描述的目标XML文档。
各个XML文件被分析以创建附图9A和9B中所描述的树形结构,即DOM模型。遍历这些树型结构以得到所有可能的叶路径,就如附图10A和10B中分别所示的那样。特别地,得到了六个源叶路径和七个目标叶路径。
第一源叶路径与七个目标叶路径相对比。所有与第一个源叶路径具有相同节点数目的目标叶路径被放置在一个目标比较列表中:
第一源叶路径项:
目标比较候选列表(仅包括一个表项):
Figure C20041005643300112
于是系统:
·将源叶路径中的第一节点(#document)和目标比较候选列表中的节点进行比较。
·如果存在完全匹配,则将它们保留在目标比较候选列表中。否则,将它们删除。
作为第一节点成功匹配的结果,目标比较候选列表保留了:
于是系统:
·将源叶路径中的第二节点(#comment)和目标比较候选列表中的节点进行比较。
·如果存在完全匹配,将它们保留在目标比较候选列表中。否则,将它们删除。
作为成功匹配第二节点的结果,目标比较候选列表中再一次保留了:
Figure C20041005643300121
于是系统:
·将源叶路径标记为″已匹配″。
·将比较候选列表中的第一目标叶路径标记为″已匹配″。
·检查是否所有适合的源节点和目标节点被标记为″已匹配″--具有相同深度的所有已匹配的节点。
这个过程的结果在关于DOM模型的附图11A和11B以及关于叶路径表的附图12A和12B中被举例说明。特别的,用交叉排线画出阴影的节点表示它们已经匹配。
以类似方式,第二源叶路径与所有目标叶路径进行比较以求发现完全匹配的目标叶路径。显然通过附图10A和10B的叶路径表可直观地发现存在这样的完全匹配--两个表中的第2行出现的叶路径是完全相同的。这个匹配被识别并且相应的节点被象附图13A,13B 14A和14B中表示的那样被标记。也就是说,这些附图现在表明所发现的全部累积的完全节点匹配(也就是,它们包括附图11A,11B,12A,和12B中已经获得和记录的结果)。
类似地,第三源叶路径与所有目标叶路径进行比较并发现完全匹配。匹配叶节点的累积结果通过附图15A,15B,16A,和16B描述。
在比较第四源叶路径时,没有发现完全匹配。系统会将这个叶路径标记为需要“模式匹配”检索,这种检索将在所有完全匹配的确定完成后进行。
第五源叶路径与所有目标叶路径进行的比较产生完全匹配的目标叶路径。完全匹配的节点的累积结果在附图17A 17B,18A,和18B中示出。
第六源叶路径的比较没有发现完全匹配的目标叶路径,并因此设置“需要模式匹配”标志。因为全部的源叶路径都被处理过,如附图6和7中所例举的实际模式匹配程序被应用于这个实例。特别地,为每一个未匹配的源叶路径和未匹配的目标叶路径创建一个新表。这些分别在附图19A和19B中说明。
如同在完全匹配算法中一样,用于在目标叶路径表中进行模式匹配的表中的每一个源叶路径均被顺序处理。只有有关的源叶路径需要与具有相同深度和相同数量在先匹配节点的目标叶路径进行比较。也就是说,对于出现在表中的第一源叶路径,只有深度为5和匹配计数为2的目标叶路径需要被考察。相应地,创建具有那些属性的目标叶路径的目标比较候选列表。在这个实例中,只有目标叶路径表的第二和第三表项能成为这种候选。
如同在附图7里举例说明的,实际的比较首先从确定那些被标识为在先匹配的节点实际上与所考虑的源叶路径和候选目标叶路径的相应节点完全匹配开始。如果它们不匹配,候选者被从候选列表中移除。因此,在这个实例中,在比较第一个源叶路径和每一个候选目标叶路径(也就是,附图19B的第二和第三叶路径)时,比较失败并且所有的候选者被从列表中移除。因此,对于包括在附图19A中的第一源叶路径,没有找到模式匹配。
通过对第二源叶路径应用相同的过程,最初确定只有第一目标叶路径需要成为候选者(因为只有它具有深度5和匹配计数3)。下一步,如前所述,是对第二源叶路径的前三个节点和第一目标叶路径的前三个节点进行比较。这确定每个这样的节点都有一个完全匹配的对应节点。然后进行检查以确定是否候选目标叶路径的其余节点(也就是,深度为4和5的节点)与所评估的第二源叶路径中的节点模式匹配。在本实例中它们就是这样匹配的。如前所述,如果对于一个具体候选没有发现这样的匹配,它被从候选列表中被移除。
如果表项存在于候选列表中,将对每个候选的深度为4和5的节点进行检查,以确定他们是完全匹配的还是模式匹配的,并相应地对这些节点进行标记。在本实例中,确定源叶路径中的第四节点完全匹配于每个候选目标叶路径的第四节点(这里,仅仅出现了一个候选)。附图20A,20B,21A和21B举例说明了这种确定做完后这两个文件比较的累积结果。相应第五节点的类似比较表明不存在完全匹配。因此,这个第五节点被标记为″已模式匹配″,来表示存在一个修改的节点项(在本实例中,″#test(5.0)″与″#text(6.0)″相对比)。附图22A和22B举例说明了源DOM模型和目标DOM模型的最终比较结果,其中垂直阴影表示发生了一个模式匹配。
本发明的可选实施方案考虑到两个文档的比较结果的各种输出格式。由于本发明是作为软件开发工具来应用的,所以所注释的DOM模型形式的输出(例如附图22A和22B)对于用户来说可能是特别有用的。类似地,包括所注释的源叶路径表的输出(例如附图18A和18B)可能具有价值。附图23举例说明了另一种输出格式,其中比较结果表现为对这两个原始文档的注释(annotation)。在这个实施方案中,源文档中所有未被标记的节点是黑体的,从而表示相对于目标文档,它们已经被删除。类似地,目标文档中所有未被标记的节点是黑体的,从而表示相对于源文档,它们已经被添加。通过在每个文件的节点下加下划线,松散匹配的叶路径被报告为在源和目标之间的″已修改节点″。
上述简单的实例利用短的、不复杂的文档的比较来举例说明本发明的各个方面。在比较更加真实的文件时,输出结果将产生更多的报告差异。本发明其它的实施方案允许使用一个过滤装置,用于报告那些差异以允许用户将输出限于特定目的,例如,为了发现想要的结果但没有被包括这些文档之间的全部差异的报告所淹没。因此例如,可设置过滤器输出以将报告限于文档间仅与编址为″class name″的节点有关的差异。
以上所述步骤能够通过标准的众所周知的编程技术来实施。以上所述实施方案的新颖性不在于具体编程技术,而在于使用所描述的步骤得到所描述的结果。体现本发明的软件编程代码一般保存在一些类型的永久存储器中,例如其中存储要比较的文档的工作站的永久存储器。在客户机/服务器环境下,这种软件编程代码可存储在与服务器相连的存储器中。软件编程代码可在任何种类的已知介质上体现,以用于例如磁盘,或硬盘驱动器,或CD-ROM的数据处理系统。这些代码可被分布在这些介质上,或为了使其它计算机系统的用户能够使用,可从一个计算机系统的内存或存储器经过一些类型的网络到所述其它计算机系统地,被分配给用户。用于在物理媒介上体现软件程序代码和/或通过网络分配软件代码的技术和方法是为大家所熟知的,在这里将不再作进一步的讨论。
可以理解,说明的每个要素以及这些要素的组合都能通过基于通用和/或专用硬件、执行指定功能或者步骤的系统,或者通过通用和/或专用硬件和计算机指令的组合来实施。
这些程序指令可被提供给处理器用来制造一个机器,因此这些在处理器上运行的指令建立了用于实现说明中所描述功能的方法。计算机程序指令可能被处理器运行来产生一系列通过处理器执行的操作步骤,用来产生一个计算机可实施的处理,因此在处理器上运行的指令为实施例证中所描述的功能提供步骤。相应地,附图1-23支持实现所述功能的方法的组合,实现所述功能的步骤的组合,以及实现所述功能的程序指令工具。
尽管已经用各种实施方案对本发明进行了描述,但是更多的变化和修改可建议给本领域技术人员,并且本发明旨在包括这些变化和修改,其落入后附的权利要求所保护的范围。

Claims (18)

1.一种用于对源文档和目标文档进行比较的方法,其中每个文档都能被分析成一个文件对象模型DOM树,所述方法包括以下步骤:
a)将源文档分析成一个源DOM树以及将目标文档分析成一个目标DOM树;
b)由源DOM树创建一个源叶路径表并且由目标DOM树创建一个目标叶路径表,每个表包括包含节点的叶路径;
c)确定与源叶路径表中的表项完全匹配的目标叶路径表中的表项,以及对于每一个发现的匹配,将相应的源和目标叶路径标记为完全匹配;
d)对那些没有被标记为完全匹配的叶路径,确定在源叶路径表中存在的那些叶路径和目标叶路径表中存在的那些叶路径之间是否存在模式匹配;以及
e)将这些文档的比较输出给用户。
2.如权利要求1所述的方法,其中所述步骤c)还包括以下步骤:
为源叶路径表中的每个表项创建一个候选目标叶路径列表,该候选目标叶路径列表具有目标叶路径表中与被选择来匹配的源叶路径表项具有相同的深度的所有表项;
搜索候选目标叶路径列表以得到与选定的源叶路径表项完全匹配的叶路径。
3.如权利要求2所述的方法,其中所述搜索步骤还包括步骤:
一旦在一个表项的相应节点和源叶路径节点之间没有发生匹配,则立即将该表项从候选目标叶路径列表中移除。
4.如权利要求2所述的方法,还包括步骤:
在包括在被标记为完全匹配的源及目标叶路径中的每个节点上设置已匹配节点指示。
5.如权利要求4所述的方法,其中所述步骤d)仅考虑使每个源叶路径表项与那些具有相同深度和匹配计数的目标叶路径进行模式匹配。
6.如权利要求1所述的方法,其中所述输出步骤包括在源文档和目标文档上提供注释来表示这两个文档的比较结果。
7.如权利要求1所述的方法,其中所述输出步骤包括在源DOM树和目标DOM树上提供注释来表示这两个文档的比较结果。
8.如权利要求1所述的方法,其中所述输出步骤包括在源叶路径表和目标叶路径表上提供注释来表示这两个文档的比较结果。
9.如权利要求1所述的方法,其中所述输出步骤还包括一个过滤步骤,用于将输出的文档比较限制为由用户选择的节点比较。
10.一种用于对源文档和目标文档进行比较的系统,其中每个文档都能被分析成一个文件对象模型DOM树,所述系统包括:
用于将源文档分析成一个源DOM树以及将目标文档分析成一个目标DOM树的装置;
用于收源DOM树创建一个源叶路径表的装置,以及用于由目标DOM树创建一个目标叶路径表的装置,每个表均包括包含了节点的叶路径;
用于确定与源叶路径表中的表项完全匹配的目标叶路径表中的表项,以及对于每一个发现的匹配,将相应的源和目标叶路径标记为完全匹配的第一确定装置;
用于对那些没有被标记为完全匹配的叶路径,确定在源叶路径表中存在的那些叶路径和目标叶路径表中存在的那些叶路径之间是否存在模式匹配的装置;以及
用于将这些文档的比较输出给用户的装置。
11.如权利要求10所述的系统,其中所述第一确定装置还包括:
用于为源叶路径表中的每个表项创建一个候选目标叶路径列表的装置,该候选目标叶路径列表具有目标叶路径表中与被选择来匹配的源叶路径表项具有相同的深度的所有表项;
用于搜索候选目标叶路径列表以得到与选定的源叶路径表项完全匹配的叶路径的装置。
12.如权利要求11所述的系统,其中所述用于搜索的装置还包括:
用于一旦在一个表项的相应节点和源叶路径节点之间没有发生匹配,则立即将该表项从候选目标叶路径列表中移除的装置。
13.如权利要求11所述的系统,还包括用于在包括在被标记为完全匹配的源及目标叶路径中的每个节点上设置已匹配节点指示。
14.如权利要求13所述的系统,其中所述用于确定模式匹配的装置仅考虑使每个源叶路径表项与那些具有相同深度和匹配计数的目标叶路径进行模式匹配。
15.如权利要求10所述的系统,其中所述用于输出的装置包括用于在源文档和目标文档上提供注释来表示这两个文档的比较结果的装置。
16.如权利要求10所述的系统,其中所述用于输出的装置包括用于在源DOM树和目标DOM树上提供注释来表示这两个文档的比较结果的装置。
17.如权利要求10所述的系统,其中所述用于输出的装置包括用于在源叶路径表和目标叶路径表上提供注释来表示这两个文档的比较结果的装置。
18.如权利要求10所述的系统,其中所述用于输出的装置还包括一个用于将输出的文档比较限制为由用户选择的节点比较的过滤装置。
CNB2004100564335A 2003-08-15 2004-08-10 用来比较两个计算机文件的方法及系统 Expired - Fee Related CN1297936C (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US10/641,959 2003-08-15
US10/641,959 US7877399B2 (en) 2003-08-15 2003-08-15 Method, system, and computer program product for comparing two computer files

Publications (2)

Publication Number Publication Date
CN1581170A CN1581170A (zh) 2005-02-16
CN1297936C true CN1297936C (zh) 2007-01-31

Family

ID=34136492

Family Applications (1)

Application Number Title Priority Date Filing Date
CNB2004100564335A Expired - Fee Related CN1297936C (zh) 2003-08-15 2004-08-10 用来比较两个计算机文件的方法及系统

Country Status (2)

Country Link
US (1) US7877399B2 (zh)
CN (1) CN1297936C (zh)

Families Citing this family (45)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7913159B2 (en) 2003-03-28 2011-03-22 Microsoft Corporation System and method for real-time validation of structured data files
US7406660B1 (en) 2003-08-01 2008-07-29 Microsoft Corporation Mapping between structured data and a visual surface
US7430711B2 (en) * 2004-02-17 2008-09-30 Microsoft Corporation Systems and methods for editing XML documents
DE602005012088D1 (de) 2004-05-21 2009-02-12 Computer Ass Think Inc Verfahren und vorrichtung zur unterstützung mehrer
US7702661B2 (en) 2005-03-02 2010-04-20 Computer Associates Think, Inc. Managing checked out files in a source control repository
CN100340979C (zh) * 2005-03-10 2007-10-03 华为技术有限公司 一种文件比较方法
US20060218160A1 (en) * 2005-03-24 2006-09-28 Computer Associates Think, Inc. Change control management of XML documents
US8275810B2 (en) * 2005-07-05 2012-09-25 Oracle International Corporation Making and using abstract XML representations of data dictionary metadata
US7403951B2 (en) * 2005-10-07 2008-07-22 Nokia Corporation System and method for measuring SVG document similarity
US7882119B2 (en) * 2005-12-22 2011-02-01 Xerox Corporation Document alignment systems for legacy document conversions
US20070185868A1 (en) * 2006-02-08 2007-08-09 Roth Mary A Method and apparatus for semantic search of schema repositories
CN101038644B (zh) * 2006-03-17 2010-12-22 浙江工业大学 一种基于ebXML标准的CPA草案合成方法
US8429526B2 (en) * 2006-04-10 2013-04-23 Oracle International Corporation Efficient evaluation for diff of XML documents
US8589366B1 (en) * 2007-11-01 2013-11-19 Google Inc. Data extraction using templates
US8838652B2 (en) * 2008-03-18 2014-09-16 Novell, Inc. Techniques for application data scrubbing, reporting, and analysis
US9043269B2 (en) * 2008-05-27 2015-05-26 Appfolio, Inc. Systems and methods for automatically identifying data dependencies for reports
US20090299952A1 (en) * 2008-05-27 2009-12-03 Zheng Jerry Systems and methods for automatic quality assurance of workflow reports
US9356805B2 (en) * 2008-06-06 2016-05-31 International Business Machines Corporation Implementing a plurality of interface definitions
US8522135B2 (en) * 2008-06-06 2013-08-27 International Business Machines Corporation Generating a transformation description document for transforming messages
US8230325B1 (en) * 2008-06-30 2012-07-24 Amazon Technologies, Inc. Structured document customizable comparison systems and methods
US8645350B2 (en) * 2008-07-11 2014-02-04 Adobe Systems Incorporated Dictionary compilations
US7996435B2 (en) * 2008-12-01 2011-08-09 Sap Ag Apparatus and method for comparing computer documents using tree structures
CN101510887B (zh) * 2009-03-27 2012-01-25 腾讯科技(深圳)有限公司 鉴别网站的方法及装置
US8370394B2 (en) * 2009-07-17 2013-02-05 International Business Machines Corporation Parallel processing of data organized in a tree structure
US8667015B2 (en) * 2009-11-25 2014-03-04 Hewlett-Packard Development Company, L.P. Data extraction method, computer program product and system
CN102129428B (zh) * 2010-01-20 2015-11-25 腾讯科技(深圳)有限公司 一种实现从网页中订阅信息的方法及装置
CN101807206A (zh) * 2010-03-10 2010-08-18 上海克而瑞信息技术有限公司 一种网络信息垂直搜索与挖掘处理方法
US20110252308A1 (en) * 2010-04-08 2011-10-13 Microsoft Corporation Generating computer program code from open markup language documents
US8533668B2 (en) * 2010-04-26 2013-09-10 Red Hat, Inc. Comparing source code using code statement structures
CN101917282B (zh) * 2010-07-20 2014-12-17 中兴通讯股份有限公司 一种告警屏蔽规则的处理方法、装置及系统
US20120072824A1 (en) * 2010-09-20 2012-03-22 Research In Motion Limited Content acquisition documents, methods, and systems
US8732664B2 (en) 2011-05-17 2014-05-20 Microsoft Corporation Document serialization and comparison via object model
US10534830B2 (en) 2011-06-23 2020-01-14 Microsoft Technology Licensing, Llc Dynamically updating a running page
US10540416B2 (en) * 2011-06-23 2020-01-21 Microsoft Technology Licensing, Llc Linking source code to running element
CN102289407B (zh) * 2011-09-06 2013-12-11 北京信息科技大学 文档格式转换自动测试方法
CN102521359B (zh) * 2011-12-15 2013-09-11 中国工商银行股份有限公司 界面数据文件的比较方法及装置
CN103309847A (zh) * 2012-03-06 2013-09-18 百度在线网络技术(北京)有限公司 一种用于实现文件比较的方法与设备
US9009172B2 (en) * 2012-03-09 2015-04-14 Infosys Limited Methods, systems and computer readable media for comparing XML documents
US9817804B2 (en) 2013-09-12 2017-11-14 Wix.Com Ltd. System for comparison and merging of versions in edited websites and interactive applications
CN104462083B (zh) * 2013-09-13 2018-11-02 佳能株式会社 用于内容比较的方法、装置和信息处理系统
US10229042B2 (en) * 2017-01-19 2019-03-12 International Business Machines Corporation Detection of meaningful changes in content
CN109255088A (zh) * 2017-07-07 2019-01-22 普天信息技术有限公司 网页数据监测方法和设备
US10783138B2 (en) 2017-10-23 2020-09-22 Google Llc Verifying structured data
CN110798356B (zh) * 2019-11-04 2021-12-14 腾讯科技(深圳)有限公司 固件监控方法、装置、存储介质和计算机设备
CN114327716A (zh) * 2021-12-27 2022-04-12 凌云光技术股份有限公司 一种基于xml语言生成本地语言操作日志的方法及系统

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2001075678A1 (en) * 2000-04-03 2001-10-11 Usablenet, Inc. System and method for evaluating an optimizing web site attributes
US6324555B1 (en) * 1998-08-31 2001-11-27 Adobe Systems Incorporated Comparing contents of electronic documents
US20020188613A1 (en) * 2001-06-07 2002-12-12 Krishneadu Chakraborty Method and apparatus for runtime merging of hierarchical trees
US6502112B1 (en) * 1999-08-27 2002-12-31 Unisys Corporation Method in a computing system for comparing XMI-based XML documents for identical contents
US6594822B1 (en) * 1999-02-19 2003-07-15 Nortel Networks Limited Method and apparatus for creating a software patch by comparing object files

Family Cites Families (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3724847B2 (ja) * 1995-06-05 2005-12-07 株式会社日立製作所 構造化文書差分抽出方法および装置
CA2255047A1 (en) * 1998-11-30 2000-05-30 Ibm Canada Limited-Ibm Canada Limitee Comparison of hierarchical structures and merging of differences
US6560620B1 (en) * 1999-08-03 2003-05-06 Aplix Research, Inc. Hierarchical document comparison system and method
US20020174147A1 (en) * 2000-05-19 2002-11-21 Zhi Wang System and method for transcoding information for an audio or limited display user interface
AUPQ849500A0 (en) * 2000-06-30 2000-07-27 Canon Kabushiki Kaisha Hash compact xml parser
US6606620B1 (en) * 2000-07-24 2003-08-12 International Business Machines Corporation Method and system for classifying semi-structured documents
WO2002027551A2 (en) * 2000-08-01 2002-04-04 Nimble Technology, Inc. Nested conditional relations (ncr) model and algebra
US6826726B2 (en) * 2000-08-18 2004-11-30 Vaultus Mobile Technologies, Inc. Remote document updating system using XML and DOM
US6978420B2 (en) * 2001-02-12 2005-12-20 Aplix Research, Inc. Hierarchical document cross-reference system and method
US7085736B2 (en) * 2001-02-27 2006-08-01 Alexa Internet Rules-based identification of items represented on web pages
US7134075B2 (en) * 2001-04-26 2006-11-07 International Business Machines Corporation Conversion of documents between XML and processor efficient MXML in content based routing networks
US6862588B2 (en) * 2001-07-25 2005-03-01 Hewlett-Packard Development Company, L.P. Hybrid parsing system and method
US6785685B2 (en) * 2001-08-22 2004-08-31 International Business Machines Corporation Approach for transforming XML document to and from data objects in an object oriented framework for content management applications
US20040205454A1 (en) * 2001-08-28 2004-10-14 Simon Gansky System, method and computer program product for creating a description for a document of a remote network data source for later identification of the document and identifying the document utilizing a description
US20030126554A1 (en) * 2001-10-19 2003-07-03 Behzadi Azad E. Document exchange among business-to-business (B2B) partners using meaningful extensible mark-up language (XML)
US6619127B2 (en) * 2002-01-08 2003-09-16 The Boeing Company Structural test soft support system
US7240279B1 (en) * 2002-06-19 2007-07-03 Microsoft Corporation XML patterns language
US7162485B2 (en) * 2002-06-19 2007-01-09 Georg Gottlob Efficient processing of XPath queries
US7162501B2 (en) * 2002-11-26 2007-01-09 Microsoft Corporation Hierarchical differential document representative of changes between versions of hierarchical document
US20050010606A1 (en) * 2003-07-11 2005-01-13 Martin Kaiser Data organization for database optimization

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6324555B1 (en) * 1998-08-31 2001-11-27 Adobe Systems Incorporated Comparing contents of electronic documents
US6594822B1 (en) * 1999-02-19 2003-07-15 Nortel Networks Limited Method and apparatus for creating a software patch by comparing object files
US6502112B1 (en) * 1999-08-27 2002-12-31 Unisys Corporation Method in a computing system for comparing XMI-based XML documents for identical contents
WO2001075678A1 (en) * 2000-04-03 2001-10-11 Usablenet, Inc. System and method for evaluating an optimizing web site attributes
US20020188613A1 (en) * 2001-06-07 2002-12-12 Krishneadu Chakraborty Method and apparatus for runtime merging of hierarchical trees

Also Published As

Publication number Publication date
US20050039117A1 (en) 2005-02-17
US7877399B2 (en) 2011-01-25
CN1581170A (zh) 2005-02-16

Similar Documents

Publication Publication Date Title
CN1297936C (zh) 用来比较两个计算机文件的方法及系统
Harris et al. Improved representation of sequence bloom trees
US12032599B2 (en) Systems and methods for trie-based automated discovery of patterns in computer logs
US9400733B2 (en) Pattern matching framework for log analysis
CN112579155B (zh) 代码相似性检测方法、装置以及存储介质
CN107203468B (zh) 一种基于ast的软件版本演化对比分析方法
CN109388523B (zh) 一种基于二进制日志文件恢复MySQL数据库的方法
US20100306273A1 (en) Apparatus, system, and method for efficient content indexing of streaming xml document content
US20120131022A1 (en) Methods and systems for merging data sets
CN1811767A (zh) 用于提供带有自动搜索菜单的用户界面的系统和方法
CN1744081A (zh) 搜索元素的方法和设备以及存储程序的记录介质
CN1713179A (zh) 在对象模型中的影响分析
CN1159665C (zh) 创建定制数据库的方法和设备
US8209297B2 (en) Data processing device and method
US20100251227A1 (en) Binary resource format and compiler
DE112011101200T5 (de) Spaltenorientierte Speicher-Darstellungen von Datensätzen
CN1877531A (zh) 一种嵌入式编译体系扫描器的实现方法
CN1345426A (zh) 用于提取索引关键字数据字段的系统和方法
CN1825306A (zh) 基于关系数据库的xml数据存储与访问方法
CN114527991A (zh) 代码的扫描方法、装置、设备、存储介质及程序产品
CN1809811A (zh) 用于借助中心xml配置文件生成分布式java应用的方法和装置
CN108292307A (zh) 具有对压缩数据的快速操作的前缀Burrow-Wheeler变换
CN115203053A (zh) 基于频繁序列挖掘的代码克隆检测方法
CN113704108A (zh) 一种相似代码检测方法及装置、电子设备、存储介质
US10853177B2 (en) Performant process for salvaging renderable content from digital data sources

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20070131

Termination date: 20160810

CF01 Termination of patent right due to non-payment of annual fee