2016-10-22 4 views
1

これは愚かな質問ですが、私はこれで苦労しています。 IDなしで 'href'の値を取得したいのですが、できません。ここでIDなしで 'href'の値を取得する方法VB

HTML

<p class="CLASS"> 
    <a href="URL" target="TARGET"> 
     <img src="IMGURL" title="TITLE" border="BORDER"> 
    </a> 
</p> 

はここで(それが動作しません)私が使っているものですされています

For Each WPE As HtmlElement In WebBrowser1.Document.GetElementsByTagName("a") 
    If WPE.GetAttribute("target").Equals("TARGET") Then 
     HREFVALUE = WPE.Getattribute("href") 
     Exit For 
    End If 
Next 

'のhref' の値を取得するには、どのように?

答えて

1

あなたは正しく動作します。しかし、間違った場所でコードを実行した可能性が高いため、期待した結果が得られませんでした。コードは、文書が完成した後に実行する必要があります。

Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load 
    Me.WebBrowser1.Navigate("d:\file.html") 
End Sub 
Private Sub WebBrowser1_DocumentCompleted(sender As Object, e As _ 
    WebBrowserDocumentCompletedEventArgs) Handles WebBrowser1.DocumentCompleted 

    Dim tag = Me.WebBrowser1.Document.GetElementsByTagName("a").Cast(Of HtmlElement) _ 
       .Where(Function(a) a.GetAttribute("target") = "TARGET") _ 
       .FirstOrDefault() 
    Dim href = tag.GetAttribute("href") 
End Sub 

が、私はちょうど目的を学ぶために上記のコードでLINQを使用:完了した文書を知るには良い場所はWebBrowser制御のDocumentCompletedイベントです。あなた自身のコードもうまく動作します。

+0

ありがとうございました。これはほとんどの場合動作しますが、時にはそのコードを何度か繰り返して結果に影響を与え、誤って実行されるコードを引き起こします。 –

関連する問題