Dim addressesAcquired As Boolean = False
Private Sub WebBrowser1_ProgressChanged(ByVal sender As Object, ByVal e As System.Windows.Forms.WebBrowserProgressChangedEventArgs) Handles WebBrowser1.ProgressChanged
If Not addressesAcquired And e.CurrentProgress = e.MaximumProgress Then
Dim regAddress As String = String.Empty
Dim corrAddress As String = String.Empty
Dim rx As New Regex("(?<=<h2>Registered Address</h2>).+(?=</div><div class=""corrAddress"">)")
Dim xmlDoc As New Xml.XmlDocument
Dim xmlRoot As Xml.XmlNode
xmlDoc.LoadXml(rx.Match(WebBrowser1.DocumentText).Value)
xmlRoot = xmlDoc.DocumentElement
Dim nodes As Xml.XmlNodeList = xmlRoot.SelectNodes("div")
Dim msg As String = String.Empty
For Each node As Xml.XmlNode In nodes
msg &= node.InnerText & Environment.NewLine
Next
regAddress = msg & Environment.NewLine & Environment.NewLine
rx = New Regex("(?<=<h2>Correspondence Address</h2>).+(?=</div></div><hr /><h2>Associated Organisations</h2>)")
xmlDoc.LoadXml(rx.Match(WebBrowser1.DocumentText).Value)
xmlRoot = xmlDoc.DocumentElement
nodes = xmlRoot.SelectNodes("div")
msg = String.Empty
For Each node As Xml.XmlNode In nodes
msg &= node.InnerText & Environment.NewLine
Next
corrAddress = msg
rx = New Regex("(?<=<th class=""col1"">).+(?=</table><table class=""total"")")
Dim splitHTML As String = rx.Match(WebBrowser1.DocumentText).Value
splitHTML = splitHTML.Substring(splitHTML.IndexOf("<tr>"))
splitHTML = splitHTML.Replace("<tr>", "")
splitHTML = splitHTML.Replace("</tr>", "")
splitHTML = "<splitHTML>" & splitHTML & "</splitHTML>"
xmlDoc.LoadXml(splitHTML)
xmlRoot = xmlDoc.DocumentElement
nodes = xmlRoot.SelectNodes("td")
msg = CStr("Stock Type" & vbTab).PadRight(40) & "Owned" & vbTab & "Managed On Behalf of Others" & Environment.NewLine
Dim counter As Integer = 1
For Each node As Xml.XmlNode In nodes
If counter = 1 Then
msg &= CStr(node.InnerText & vbTab).PadRight(40)
counter += 1
ElseIf counter = 2 Then
msg &= node.InnerText & vbTab
counter += 1
Else
msg &= node.InnerText & Environment.NewLine
counter = 1
End If
Next
Debug.Print(regAddress & corrAddress & msg)
addressesAcquired = True
End If
End Sub