HtmlAgilityPack と Tidy 以外にアドバイスできるライブラリは何ですか?
XPath クエリを HTML コンテンツに適用できるようにするために、Tidy をコンソール プログラムとして使用し、いくつかのトリックを使用して C# XmlDocument または Html Agility Pack を取得します。これらのライブラリは両方とも古くなっています - HAP は 2010 年 5 月から変更されておらず、Tidy は 2008 年から変更されていません。次のトリックを適用した後でもタグを閉じることによってドキュメント構造を修正しなかったため、HAP を使用して悪い経験をしました:
public static HtmlDocument MakeEmptyDocument()
{
HtmlDocument doc = new HtmlDocument();
doc.OptionAutoCloseOnEnd = true;
doc.OptionFixNestedTags = true;
doc.OptionOutputAsXml = true;
doc.OptionWriteEmptyNodes = true;
return doc;
}
public static HtmlDocument LoadHtmlDocumentFromString(string content)
{
HtmlDocument doc = MakeEmptyDocument();
doc.LoadHtml(content);
StringBuilder sb = new StringBuilder();
using (StringWriter sw = new StringWriter(sb))
doc.Save(sw);
using (StringReader sw = new StringReader(sb.ToString()))
doc.Load(sw);
return doc;
}
一般的に私は Tidy を好みましたが、今では非常に単純なドキュメントを完全に壊し、BIG コンテンツ部分を削除する場合があります。そのため、.NET から使用できる代替手段が必要なようです。