質問: ASP.NETページ、ユーザーコントロール、マスターページから`LINK`と`META`要素を取得し、その内容を取得して、作業中のユーティリティでこれらのファイルに更新された値を書き戻す必要があります。 正規表現を使ってこれらの要素だけを取得しようとすることもできますが、そのアプローチにはいくつかの問題があります。 * 私は、入力ファイルの多くに、壊れたHTML(欠落/順序外要素など)が含まれることを期待しています。 * コメントやVBScript / JavaScriptを含む`SCRIPT`要素は、有効な要素などのように見えます。 * 私はIEの条件付きコメントの中に特別なケースのIEの条件付きコメントと`META`と`LINK`要素を入れる必要があります * HTMLが通常の言語ではないことは言うまでもありません 私は.NETのHTMLパーサーのためのいくつかの調査を行いました。多くのSOの投稿とブログでは、 HTMLのAgility Packが推奨されています 。以前はこれまで使ったことがなかったし、壊れたHTMLやHTMLの断片を解析できるかどうかわからない。 (たとえば、 `HTML`や`BODY`ない`HEAD`要素のみを含むユーザーコントロールを想像してみてください)私はドキュメントを読むことができると知っていますが、誰かがアドバイスできればかなり時間を節約できます。 (ほとんどのSO投稿には、完全なHTMLページの解析が含まれます)。
回答: 絶対に、それはそれが優れているものです。 実際、野生で見つかる多くのWebページは、 ``タグがないか、または不適切に閉じられたタグのために、HTMLフラグメントとして記述することができます。 HtmlAgilityPackは、ブラウザが何をしなければならないかをシミュレートしています。時には、不一致のタグが混じっていることから何かを理解しようとします。不完全な科学ですが、HtmlAgilgityPackはそれをとてもうまく行います。