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

Parse html from a string in VB.NET using LINQ

我想从网页导入 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

去掉第一个未关闭的标签后,该页面可以解析为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。