質問: c#でデスクトップアプリを作成中です。 詰まってしまったことがあるのでご助力お願いします。 webbrowserでHtmlを解析しています。 下2つのことをしたいのですがHtmlElementクラスなどの利用だけでできますか?できない場合はおすすめのパッケージなど教えていただけると助かります。 1Htmlのタグ名でいくつかのタグを特定。特定したタグの中から目的の要素を持つタグを特定。その特定したタグの2つ次のタグのhref要素の値を取得する。(2つ次とは始めのHtmlソース全体の中で2つ次のタグとゆう意味です) 2Htmlのタグ名でいくつかのタグを特定。特定したタグの中から目的の要素を持つタグの内容(source)を全て表示。 .GetByTagNameや.GetByAttributeなどで特定したいくつかのタグ(Html Element Collection、コレクション)の中から目的の要素を持つタグ(Html Element、オブジェクト)を特定するところまではいけたのですがその中身全てを表示したり、そのタグが全体で何番目か調べてその2つ次のタグのオブジェクトを取得したりといったことができないです>< 如何せん初心者なものでコレクションとかオブジェクトの扱いに戸惑っております。今回に関してはオブジェクトという概念が作業の邪魔になっている気がします。ただの配列なら行けそうな気がするのですが... 方針だけでもいいのでお力添えお願いします。
回答: C# で`HTML`の解析を行うツールとしては、Html Agility Packが有名です。 以下のように`XPath`が使えるのでタグ名での取得が容易にできます。 ``` var htmlDoc = new HtmlDocument(); htmlDoc.LoadHtml(html); string name = htmlDoc.DocumentNode .SelectNodes("//td/input") .First() .Attributes["value"].Value; ```