リンク先を取り出すには


おたすけください  2009-04-15 00:33:09  No: 141831  IP: 192.*.*.*

VBでWebBrowser1にページを開いて
そのソースは下のような部分を含んでいて
accesskey.htmを  WebBrowser1.????????で
取り出したいのですが
できないでしょうか

  <a href="accesskey.htm" accesskey="j">ジャンプ(<u>J</u>)</a>

os XP sp3
vb2008 です

編集 削除
魔界の仮面弁士  2009-04-15 02:30:30  No: 141832  IP: 192.*.*.*

マネージの方の WebBrowser だとすれば、Document プロパティが返す HTMLDocument の
Liks プロパティあるいはGetElementByTagName メソッド等を用いて、
該当の a 要素を表す HtmlElement クラスを取得し、そこから
GetAttribute メソッドで "href" の内容を得ることができるかと思います。


ActiveX の方の WebBrowser の場合もほぼ同様で、Document プロパティから
links プロパティ等で a 要素を列挙するなどして、目的の a 要素を捉えれば、
その HTMLAnchorElement オブジェクトの href プロパティで取得できるかと。

編集 削除
おたすけください  2009-04-15 12:37:09  No: 141833  IP: 192.*.*.*

ご返事ありがとうございます

 aa = WebBrowser.Document.Links.Count
でリンクの個数は出てきたんですが

GetElementByTagName メソッド等を用いて、
該当の a 要素を表す HtmlElement クラスを取得し
とは  
aa = .Document.Links.GetElementsByName("href")
ことでしょうか


ActiveX の方の WebBrowser の場合もほぼ同様で、Document プロパティから
links プロパティ等で a 要素を列挙するなどして

すいません  その方法の  ヒントいただけませんか

、目的の a 要素を捉えれば、
その HTMLAnchorElement オブジェクトの href プロパティで取得できるかと。
すいません  初歩しかわかってないもので  ご迷惑かけます

編集 削除
魔界の仮面弁士  2009-04-15 17:12:41  No: 141834  IP: 192.*.*.*

> aa = WebBrowser.Document.Links.Count
> でリンクの個数は出てきたんですが
For Each element As HtmlElement In WebBrowser1.Document.Links
のようにして、各要素を列挙してください。


> aa = .Document.Links.GetElementsByName("href")
GetElementsByName は、
  o = WebBrowser1.Document.GetElementsByName("a")
のように利用します。今回拾いたいのは <a> 要素なので "a" を指定します。

もし、対象要素が <a id="foo" href="〜"> のように「id属性」を持っているなら、
GetElementById メソッドを使って、直接その要素を拾い出すこともできます。

(この他、All プロパティから列挙する方法や、Body などから
 FirstChild/NextSibling を駆使して探し出す方法などもあります)


> ActiveX の方の WebBrowser の場合もほぼ同様で、Document プロパティから
> すいません  その方法の  ヒントいただけませんか
使用している WebBrowser が、System.Windows.Forms.WebBrowser のようなので、
後半の ActiveX 版の解説は、丸ごと無視してください。今回は関係ありません。

もし、ActiveX 版を利用している(通常、AxWebBrowser のような名前になる)なら、
逆に前半の managed WebBrowser の解説の方を無視して頂くことになります。

編集 削除