私は現在、HtmlAgilityPackをコンソールアプリケーションで使用して、Webサイトをスクラップしています。 htmlはエンコードされているので( '
ようなエンコードされた文字が返され'
)、データベースにコンテンツを保存する前にデコードする必要があります。
HttpUtility.HtmlDecodeを使用せずに、HtmlAgilityPackを使用して返されたHTMLをデコードする方法はありますか?可能であれば、私のコンソールアプリケーションにSystem.Webを追加しないようにしたい。
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)
それはよく知られているエンティティ(
)と'
同じように。
ちょうど私の2セントを追加:私は使用していくつかのパフォーマンス・テストを実行しましたStopWatch
クラスを、その見つけHttpUtility.HtmlDecode
より約15〜20% 高速であるDeEntitize
方法。 DeEntitize
はいくつかのバグがあります(上記のコメントを参照)。
だから多分System.Webを参照することは、あまりにも悪いことではありません。
あなたがすでに.NETの完全版をターゲットにしているアプリを書いているなら(軽量版である「.NET Client Profile」とは対照的に)、私はSystem.Webを参照するつもりです。