.NET TIPS

WebBrowserコントロール内のHTML要素からclass属性の値を取得するには?[2.0、C#、VB]

デジタルアドバンテージ 遠藤 孝信
2009/07/30

 「TIPS:WebBrowserコントロールによりWebページからリンクや画像を抽出するには?」で示しているように、WebBrowserコントロール(System.Windows.Forms名前空間)を使えば、Webページを取得して、そこから特定のタグの要素を抜き出すといったことが可能だ。

 このようにして取得したHTML要素は、上記のTIPSでも示しているように、HtmlElementクラス(System.Windows.Forms名前空間)のオブジェクトとして表され、さらにはそのGetAttributeメソッドにより、任意の属性の値も取得できる。

 例えば以下のコードは、変数eがHtmlElementオブジェクトを参照しており、その要素のhref属性の値を取得している。

string href = e.GetAttribute("href"); // href属性の値の取得
Dim href As String = e.GetAttribute("href") ' href属性の値の取得
href属性の値の取得(上:C#、下:VB)

 ただし、GetAttributeメソッドの利用には1つ大きな注意点があり、class属性の値を取得する場合に限り、その属性名を「className」と記述しなければならない。

string c = e.GetAttribute("className"); // class属性の値の取得
Dim c As String = e.GetAttribute("className") ' class属性の値の取得
class属性の値の取得(上:C#、下:VB)
メソッドの引数には「className」と指定する必要がある。なお、GetAttributeメソッドでは属性名の大文字小文字は区別されない。

 引数に「"class"」と指定すると、たとえclass属性が存在していても、GetAttributeメソッドの戻り値は空文字となるため注意が必要だ。

 ちなみに、JavaScriptのgetAttribute関数においても、IE7まではclass属性値を取得するには引数として「'className'」を指定する必要があったが、IE8では、Firefoxなどのほかのブラウザと同様に、「'class'」と指定できるようになっている(なお、WebBrowserコントロールにおけるGetAttributeメソッドの挙動は、インストールされているIEのバージョンとは関係ない)。

利用可能バージョン:.NET Framework 2.0以降
カテゴリ:Windowsフォーム 処理対象:WebBrowserコントロール
使用ライブラリ:WebBrowserコントロール(System.Windows.Forms名前空間)
使用ライブラリ:HtmlElementクラス(System.Windows.Forms名前空間)
関連TIPS:WebBrowserコントロールによりWebページからリンクや画像を抽出するには?

この記事と関連性の高い別の.NET TIPS
[Silverlight 2]HTML要素の属性を設定/取得するには?
WebBrowserコントロールによりWebページからリンクや画像を抽出するには?
WebBrowserコントロール内のテキストボックスに文字列をセットするには?
[Silverlight 2]HTML要素の属性を追加/削除するには?
WebBrowserコントロールのコンテンツを文字列により設定するには?
このリストは、(株)デジタルアドバンテージが開発した
自動関連記事探索システム Jigsaw(ジグソー) により自動抽出したものです。
generated by

「.NET TIPS」

@IT Special

- PR -

TechTargetジャパン

Insider.NET フォーラム 新着記事
@ITメールマガジン 新着情報やスタッフのコラムがメールで届きます(無料)
- PR -

イベントカレンダー

PickUpイベント

- PR -

アクセスランキング

もっと見る

ホワイトペーパーTechTargetジャパン

注目のテーマ

Insider.NET 記事ランキング

本日 月間
ソリューションFLASH