一些 HTML内容比较/文本差异比较 开源代码
2011-04-08 21:55
246 查看
1. DiffPlex - a .NET Diff Generator
http://diffplex.codeplex.com/
简介:
具体使用可以参考http://diffplex.codeplex.com/wikipage?title=library&referringTitle=Home
IDiffer是差异比较的核心类,提供了两个文本的低精度的大致比较
ISidebySideDiff:提供了高精度的比较以及可以用两栏对比显示差异
接口
![](http://images.cnblogs.com/cnblogs_com/gardenforu/292949/o_code.png)
Silverlight
![](http://images.cnblogs.com/cnblogs_com/gardenforu/292949/o_silverlight.png)
Website
![](http://images.cnblogs.com/cnblogs_com/gardenforu/292949/o_silverlight.png)
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
![](http://images.cnblogs.com/cnblogs_com/gardenforu/292949/o_DiffEngine.jpg)
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/
![](http://images.cnblogs.com/cnblogs_com/gardenforu/292949/o_html_diff_output_text.PNG)
4.NDiffDiff: A Diff Implementation for Lines and Chars in Text File
简介:
提供Winform Demo
http://www.codeproject.com/KB/recipes/NBDiffDiff.aspx
http://diffplex.codeplex.com/
简介:
具体使用可以参考http://diffplex.codeplex.com/wikipage?title=library&referringTitle=Home
IDiffer是差异比较的核心类,提供了两个文本的低精度的大致比较
ISidebySideDiff:提供了高精度的比较以及可以用两栏对比显示差异
接口
![](http://images.cnblogs.com/cnblogs_com/gardenforu/292949/o_code.png)
Silverlight
![](http://images.cnblogs.com/cnblogs_com/gardenforu/292949/o_silverlight.png)
Website
![](http://images.cnblogs.com/cnblogs_com/gardenforu/292949/o_silverlight.png)
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
![](http://images.cnblogs.com/cnblogs_com/gardenforu/292949/o_DiffEngine.jpg)
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
![](http://images.cnblogs.com/cnblogs_com/gardenforu/292949/o_NDiffDiff.png)
相关文章推荐
- 一些 HTML内容比较/文本差异比较 开源代码
- HTML语言基础之——使用标签制作文本内容(1)
- 使用struts2标签输出带html标签的文本内容
- JAVA读取WORD,EXCEL,PDF,TXT,RTF,HTML文件文本内容的方法示例
- 用jQuery向div中添加html文本内容的简单实现
- 处理html内容,获取纯文本
- iOS UILabel 显示带有html标签的富文本内容
- 用jQuery向div中添加Html文本内容的简单实现
- 正则表达式相关:C# RichTextBox显示html文本内容
- 微信小程序Markdonw、HTML富文本内容显示解决办法
- 关于Image一些比较抽象的东西(Build Type与 同步以及异步加载的差异)
- MVC3/4 自定义HtmlHelper截断文本内容
- Java 获取Html文本中的img标签下src中的内容
- iOS怎么显示html父文本上的内容
- C++中关于文本内容的实用操作集合(新)(添加一些关于文件流的介绍)
- JAVA过滤标签实现将html内容转换为文本的方法示例
- JAVA 过滤标签将html内容转换为文本
- 文件输入输出 c++ 比较两个文本内容
- HTML 转文本及HTML内容提取(C#)
- iOS label加载html富文本内容