使用LINQ从VB.NET中的字符串解析html

时间:2018-01-13 17:52:43

标签: html vb.net linq linq-to-xml

我想从网页导入html,然后解析它并从元素中检索http链接。我能够抓取html并将其放入一个字符串中。另外,如果我有xml格式的html,我可以为每个循环执行一次检索数据。但我无法弄清楚如何获取html字符串并使其可由LINQ读取。我想我在这里错过了一些简单的部分。

Sub GetTest()
        Dim source As String = "http://gd2.mlb.com/components/game/mlb/year_2018/month_03/day_29/"
        Dim Client As New WebClient
        Dim html As String = Client.DownloadString(source)

        Dim xml = XElement.Parse(html)

        Dim links = From link In xml...<a>

        For Each link In links
            MessageBox.Show(link.@href)
        Next
    End Sub

1 个答案:

答案 0 :(得分:1)

在删除第一个未关闭的标记后,可以将此页面解析为Xml:

Dim xml = XElement.Parse(html.Substring(html.IndexOf(">") + 1))
For Each link In xml.Descendants("a")
    Console.WriteLine(link.Attribute("href"))
Next

一般来说,尝试解析Html时会出现多个问题,就好像它是标准的Xml一样。所以最好使用HtmlAgilityPack。