HtmlAgilityPack基础教程:如何获取标题和链接?

3

Html

<div class="col">                   
<a class="video-box" title="En son haber" href="http://**/en-son-haber">
<img class="img-responsive" alt="en son haber" src="http://**/thumb/6/9/6/200x120/en-son-haber-49-29.jpg"> 
<span class="title">En son haber</span>
<span class="duration">01:02</span><span class="view-count">9.023</span></a>
</div>

代码

 Dim request2 As HttpWebRequest = WebRequest.Create("http://**.com/")
 Dim response2 As HttpWebResponse = request2.GetResponse()
 Dim reader2 As StreamReader = New StreamReader(response2.GetResponseStream())
 Dim sayfa2 As String = reader2.ReadToEnd()
 Dim dokuman2 = New HtmlAgilityPack.HtmlDocument()                         
 dokuman2.LoadHtml(sayfa2)

 Dim getir2 As HtmlAgilityPack.HtmlNodeCollection = dokuman2.DocumentNode.SelectNodes("//div[@class='col']")
 For Each node In getir2             
      TextBox1.Text += node.SelectSingleNode("//a[@class='video-box']").SelectSingleNode("href").InnerText 
 Next

我希望在一个
元素中获取linktitle,但是SelectSingleNode重复检索值...如何获得正确结果?

使用HtmlAgilityPack库是必要的先决条件吗?我可以给你一个使用正则表达式的解决方案。 - ElektroStudios
2个回答

3

这是正确的用法:

TextBox1.Text &= node.SelectSingleNode("//a[@class='video-box']").Attributes("title").Value
TextBox1.Text &= node.SelectSingleNode("//a[@class='video-box']").Attributes("href").Value

@Gaby,@dotNET 感谢帮助! - user2989391
1
嘿,我为一个未知的人设置赏金怎么样? :P @dotNET 感谢您的解决方案。 - ElektroStudios

1
如果您查看示例页面http://htmlagilitypack.codeplex.com/wikipage?title=Examples,第一个示例展示了如何访问属性。
所以在您的情况下,
 For Each node In getir2   
      dim aTag as HtmlAgilityPack.HtmlNode = node.SelectSingleNode("//a[@class='video-box']")
      TextBox1.Text += aTag["href"].value
      'and for the title
      TextBox1.Text += aTag["title"].value
 Next

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接