一些 HTML内容比较/文本差异比较 开源代码

1. DiffPlex - a .NET Diff Generator
http://diffplex.codeplex.com/

简介:

具体使用可以参考http://diffplex.codeplex.com/wikipage?title=library&referringTitle=Home

IDiffer是差异比较的核心类,提供了两个文本的低精度的大致比较

ISidebySideDiff:提供了高精度的比较以及可以用两栏对比显示差异

接口

Silverlight

 

 Website

 



 

2.diffengine

简介:

功能强大,

缺点:文本每行不能超过1024个字符

 

DifferenceEngine.DiffList_TextFile sourceFile  null;
DifferenceEngine.DiffList_TextFile destinationFile 
= null;

sourceFile 
= new DifferenceEngine.DiffList_TextFile("1.txt");
destinationFile 
= new DifferenceEngine.DiffList_TextFile("2.txt");

DifferenceEngine.DiffEngine engine 
= new DifferenceEngine.DiffEngine();
engine.ProcessDiff(sourceFile,destinationFile, DifferenceEngine.DiffEngineLevel.FastImperfect);
ArrayList diffLines 
= engine.DiffReport();
foreach (DifferenceEngine.DiffResultSpan span in diffLines)
 {  
   
switch (span.Status)
    {
 
case ifferenceEngine.DiffResultSpanStatus.NoChange:
    
//没改变
      break;
 
case DifferenceEngine.DiffResultSpanStatus.AddDestination:
//新增的
     break;
 
case DifferenceEngine.DiffResultSpanStatus.DeleteSource:
//已删除的
     break;
case DifferenceEngine.DiffResultSpanStatus.Replace:
//修改的      
                break;
default:
 
//  默认
                      break;

                }

            }

获取新增内容示例:

 

string str = ((DifferenceEngine.TextLine)(destinationFile.GetByIndex(span.DestIndex))).Line;


http://www.codeproject.com/KB/recipes/diffengine.aspx


 


 

3. htmldiff

简介:

HtmlDiff原本是Ruby版的HTML差异比较算法,后来有朋友做了个C#版本,特点是非常好用,过于简单
C#版:  http://htmldiff.codeplex.com/

Ruby版: http://github.com/myobie/htmldiff
http://www.rohland.co.za/index.php/2009/10/31/csharp-html-diff-algorithm/

 


4.NDiffDiff: A Diff Implementation for Lines and Chars in Text File

简介:

提供Winform Demo

http://www.codeproject.com/KB/recipes/NBDiffDiff.aspx

posted on 2011-04-08 21:55    阅读(2073)  评论(4编辑  收藏

导航