vb net + 使用 htmlagilitypack 从 div 获取内容
vb net + getting content from a div with htmlagilitypack
流量:
1.(好)我下载一个 json
2.(好的)我从包含 html
的 json 对象中解析一个值
3.(不正确)我显示 div.countries
中的值
我的代码:
Dim webClient As New System.Net.WebClient
Dim result As String = webClient.DownloadString("http://example.com/countries.json")
Dim values As JObject = JObject.Parse(result)
Dim finalHTML As String = values.GetValue("countries_html")
基本上 finalHTML 变量如下所示:
<div class="country_name">USA</div>
<div class="country_name">Ireland</div>
<div class="country_name">Australia</div>
我卡住了,不知道如何继续前进。
我需要遍历所有 div.country_name 并获取其中的 inner_text。希望有道理。
这里有一篇关于使用 HAP 的好文章:http://www.mikesdotnetting.com/article/273/using-the-htmlagilitypack-to-parse-html-in-asp-net。
由于 finalHTML
字符串已经只包含目标 div 元素,您可以简单地将字符串加载到 HtmlDocument
对象并使用一些 LINQ 来投影 divs 到集合 -IEnumerable
、List<T>
或任何最适合您需要的 InnerText 字符串:
....
Dim finalHTML As String = values.GetValue("countries_html")
Dim doc = New HtmlDocument()
doc.LoadHtml(finalHTML)
Dim countries = doc.DocumentNode.Elements("div").Select(Function(o) o.InnerText.Trim())
'print the result as comma separated text to console:
Console.WriteLine(String.Join(",", countries))
输出:
USA,Ireland,Australia
流量:
1.(好)我下载一个 json
2.(好的)我从包含 html
的 json 对象中解析一个值
3.(不正确)我显示 div.countries
中的值
我的代码:
Dim webClient As New System.Net.WebClient
Dim result As String = webClient.DownloadString("http://example.com/countries.json")
Dim values As JObject = JObject.Parse(result)
Dim finalHTML As String = values.GetValue("countries_html")
基本上 finalHTML 变量如下所示:
<div class="country_name">USA</div>
<div class="country_name">Ireland</div>
<div class="country_name">Australia</div>
我卡住了,不知道如何继续前进。 我需要遍历所有 div.country_name 并获取其中的 inner_text。希望有道理。
这里有一篇关于使用 HAP 的好文章:http://www.mikesdotnetting.com/article/273/using-the-htmlagilitypack-to-parse-html-in-asp-net。
由于 finalHTML
字符串已经只包含目标 div 元素,您可以简单地将字符串加载到 HtmlDocument
对象并使用一些 LINQ 来投影 divs 到集合 -IEnumerable
、List<T>
或任何最适合您需要的 InnerText 字符串:
....
Dim finalHTML As String = values.GetValue("countries_html")
Dim doc = New HtmlDocument()
doc.LoadHtml(finalHTML)
Dim countries = doc.DocumentNode.Elements("div").Select(Function(o) o.InnerText.Trim())
'print the result as comma separated text to console:
Console.WriteLine(String.Join(",", countries))
输出:
USA,Ireland,Australia