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