如何使用c#比较html文字

本文关键字:html 文字 比较 何使用 | 更新日期: 2023-09-27 18:02:41

我需要比较两个html。一个是使用webClient.DownloadString方法从URL获得的。其他我在Amazon S3上的一个桶上。问题是,当我使用亚马逊sdk的DownloadText方法时,HTML特殊字符被替换为双引号的HTML代码,如"。所以比较总是不同的。我想知道是否有解决这个问题的方法。

如果文件不在amazon中,而是在我的文件系统中,那么File.ReadText方法就会非常有效。

如何使用c#比较html文字

如果你的源代码是'转义'的,HtmlDecode方法应该为你做的伎俩:

using System.Web;
string escapedSource = "<p>"Some content to be unescaped"</p>";
string unescapedresult = HttpUtility.HtmlDecode(escapedSource);
unescapedresult.Dump();
结果:

<p>"Some content to be unescaped"</p>

您要查找的是https://msdn.microsoft.com/en-us/library/system.web.httputility.htmldecode(v=vs.110).aspx

例如:

var amazonTextEncoded = AmazonS3Client.DownloadText();
var amazonTextDecoded = HttpUtility.HtmlDecode(amazonTextEncoded);
// Compare amazonTextDecoded to file content...

使用HttpUtility.HtmlDecode解码Html字符串,去掉Html特殊字符

我会使用diff工具,如DiffChecker。谷歌一下