.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属性の値を取得している。
| ||
href属性の値の取得(上:C#、下:VB) |
ただし、GetAttributeメソッドの利用には1つ大きな注意点があり、class属性の値を取得する場合に限り、その属性名を「className」と記述しなければならない。
| ||
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」 |
Insider.NET フォーラム 新着記事
- 第2回 簡潔なコーディングのために (2017/7/26)
ラムダ式で記述できるメンバの増加、throw式、out変数、タプルなど、C# 7には以前よりもコードを簡潔に記述できるような機能が導入されている - 第1回 Visual Studio Codeデバッグの基礎知識 (2017/7/21)
Node.jsプログラムをデバッグしながら、Visual Studio Codeに統合されているデバッグ機能の基本の「キ」をマスターしよう - 第1回 明瞭なコーディングのために (2017/7/19)
C# 7で追加された新機能の中から、「数値リテラル構文の改善」と「ローカル関数」を紹介する。これらは分かりやすいコードを記述するのに使える - Presentation Translator (2017/7/18)
Presentation TranslatorはPowerPoint用のアドイン。プレゼンテーション時の字幕の付加や、多言語での質疑応答、スライドの翻訳を行える
|
|