这是来自网页的html呈现代码
<div class="mygallery_entry">
<div class="mygallery_inner">
<a title="img1" class="gallery_image" href="http://image.com/29.html"><img src="/mini/1.jpg" alt="" height="208" width="333" border="0"></a>
</div>
<div class="mygallery_inner">
<a title="img2" class="gallery_image" href="http://image.com/12.html"><img src="/mini/2.jpg" alt="" height="208" width="333" border="0"></a>
</div>
<div class="mygallery_inner">
<a title="img3" class="gallery_image" href="http://image.com/59.html"><img src="/mini/3.jpg" alt="" height="208" width="333" border="0"></a>
</div>
</div>
我的输出进入列表框,它应该如下所示:
http://image.com/29.html
http://image.com/12.html
http://image.com/59.html
答案 0 :(得分:0)
有几种方法可以从xml或html中提取信息。如果html是有效的xml,您可以使用LINQ-to-XML和XPath查询或LINQ查询语法获取特定信息。否则,如果html不是有效的XML并且无法解析/加载到XDocument
,那么您应该查看Html Agility Pack。下面是使用XPath查询来获取这三个图像链接的示例( html页面需要先下载并以文件或字符串的形式存储)。
Imports System.Xml.XPath
....
Dim doc = XDocument.Parse(htmlString)
'if you want to load from html file instead of string, use XDocument.Load as follow
'Dim doc = XDocument.Load(pathToHtmlFile)
Dim list = New List(Of String)()
For Each a As XElement In doc.XPathSelectElements("//div[@class='mygallery_inner']/a[@href]")
list.Add(a.Attribute("href").Value)
Next
最后,您将从list
变量中的html页面获取所有链接,随时可以显示。上面的XPath查询表达式
意思是(从右到左阅读):
/a[@href]
:选择具有<a>
属性的元素href
并且是...的直接子项。//div[@class='mygallery_inner']
:<div>
元素,class
属性值= mygallery_inner
,是根元素的后代(不一定是直接子元素)