.net 如何获得';href';无id VB

.net 如何获得';href';无id VB,.net,vb.net,winforms,webbrowser-control,.net,Vb.net,Winforms,Webbrowser Control,我知道这是一个愚蠢的问题,但我很难回答。我想在没有id的情况下获取'href'的值,但我不能 这是HTML <p class="CLASS"> <a href="URL" target="TARGET"> <img src="IMGURL" title="TITLE" border="BORDER"> </a> </p> 那么如何获得href的值呢?您的代码工作正常。但是您没有得到预期的结果,因为您可能

我知道这是一个愚蠢的问题,但我很难回答。我想在没有id的情况下获取'href'的值,但我不能

这是HTML

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

那么如何获得href的值呢?

您的代码工作正常。但是您没有得到预期的结果,因为您可能在错误的位置执行代码。代码应在文档完成后运行。知道文档已完成的一个好地方是
WebBrowser
控件的事件:

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只是为了学习。您自己的代码也可以正常工作。

谢谢您的回答。尽管这在大多数情况下都有效,但有时它会多次重复它下面的代码,这会影响结果并触发某些代码意外运行。
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