私の CsQuery プロジェクトをチェックしてください: https://github.com/jamietre/csqueryまたは "CsQuery" として nuget で。
これは、jQuery の C# (.NET 4) ポートです。セレクターは、HTML Agility Pack よりも桁違いに高速です。実際、これを書いた最初の目的は、HTML をリアルタイムで操作するという、あなたがやりたいことを正確に行うことでした。たまたま、ckeditor によって生成された html を含む CMS から。
CsQuery を使用して Web フォームの HTML をインターセプトするには、ページの分離コードで次のようにします。
using CsQuery;
using CsQuery.Web;
protected override void Render(HtmlTextWriter writer)
{
// the CsQueryHttpContext object is part of the CsQuery library, it's a helper
// than abstracts the process of intercepting base.Render() for you.
CsQueryHttpContext csqContext =
WebForms.CreateFromRender(Page, base.Render, writer);
// CQ object is like a jQuery object. The "Dom" property of the context
// returned above represents the output of this page.
CQ doc = csqContext.Dom;
doc["li > a"].AddClass("foo");
// write it
csqContext.Render();
}
GitHub に基本的なドキュメントがありますが、HTML の入出力を除けば、jQuery とほとんど同じように機能します。上記のオブジェクトは、オブジェクトとメソッドとのWebFormsやり取りを処理するのに役立ちます。一般的な使用法は非常に単純です。HtmlTextWriterRender
var doc = CQ.Create(htmlString);
// or
var doc = CQ.CreateFromUrl(url);
.. do stuff with doc, a CQ object that acts like a jQuery object
string html = doc.Render();