HtmlAgilityPack和HtmlDecode

Tho*_*mas 51 html-agility-pack

我目前正在使用带有控制台应用程序的HtmlAgilityPack来抓取一个网站.由于html是编码的(它返回编码的字符'),我必须解码才能将内容保存到我的数据库.

有没有办法使用HtmlAgilityPack解码返回的html而不必使用HttpUtility.HtmlDecode?我希望尽可能避免将System.Web添加到我的控制台应用程序中.

Sim*_*ier 97

Html Agility Pack配备了一个名为的实用程序类HtmlEntity.它有一个带有以下签名的静态方法:

/// <summary>
/// Replace known entities by characters.
/// </summary>
/// <param name="text">The source text.</param>
/// <returns>The result text.</returns>
public static string DeEntitize(string text)
Run Code Online (Sandbox Code Playgroud)

它支持众所周知的实体(如&nbsp;)和编码字符等&#039;.


Ser*_*ltz 11

只需加上我的2美分:我已经使用StopWatch类运行了一些性能测试,发现它比该方法HttpUtility.HtmlDecode 15-20%.还有一些错误(见上面的评论).DeEntitizeDeEntitize

所以也许引用System.Web毕竟不是那么糟糕.

如果您正在编写一个已经以".NET full"为目标的应用程序(与".NET Client Profile"相对应 - 这是一个轻量级版本) - 我会去引用System.Web.

  • 什么"上面的评论"? (6认同)

wez*_*ten 8

使用不需要任何特殊参考的WebUtility