【问题标题】:vb net + getting content from a div with htmlagilitypackvb net + 使用 htmlagilitypack 从 div 获取内容
【发布时间】:2015-10-10 04:56:38
【问题描述】:

流程:
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 。希望这是有道理的。

【问题讨论】:

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


    【解决方案1】:

    由于 finalHTML 字符串已经只包含目标 div 元素,您可以简单地将字符串加载到 HtmlDocument 对象并使用一些 LINQ 将 div 投影到集合 -IEnumerableList&lt;T&gt; 或最适合您需要的 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
    

    【讨论】:

    • 从来不知道有dot net fiddle,哇!当然,非常感谢您的解决方案 - 它对我帮助很大! :)
    【解决方案2】:

    【讨论】:

      猜你喜欢
      • 2017-10-20
      • 1970-01-01
      • 2016-04-21
      • 2017-06-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多