vb net +使用htmlagilitypack从div获取内容

时间:2015-10-10 04:56:38

标签: json vb.net html-agility-pack

流速:
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。希望有意义。

2 个答案:

答案 0 :(得分:1)

答案 1 :(得分:1)

由于finalHTML字符串已只包含目标div元素,因此您只需将字符串加载到HtmlDocument对象并使用一些LINQ将div投影到集合中即可 - IEnumerableList<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))

<强> Dotnetfiddle Demo

输出

USA,Ireland,Australia