2016-02-25 43 views
2

這是HTMLvb.net使用htmlagilitypack

<div id="catlist-listview" class="cat-listview cat-listbsize"> 
<ul> 
    <li><a href="http://wantedlink1" rel="bookmark" title="sometitel1" class="sonra">title1</a></li>  
    <li><a href="http://wantedlink2" rel="bookmark" title="sometitel2" class="sonra">title2</a></li> 
    <li><a href="http://wantedlink3" rel="bookmark" title="sometitel3" class="sonra">title3</a></li> 
    <li><a href="http://wantedlink4" rel="bookmark" title="sometitel4" class="sonra">title4</a></li> 
    <li><a href="http://wantedlink5" rel="bookmark" title="sometitel5" class="sonra">title5</a></li> 
    <li><a href="http://wantedlink6" rel="bookmark" title="sometitel6" class="sonra">title6</a></li> 
    <li><a href="http://wantedlink7" rel="bookmark" title="sometitel7" class="sonra">title7</a></li> 
    <li><a href="http://wantedlink8" rel="bookmark" title="sometitel8" class="sonra">title8</a></li> 
    <li><a href="http://wantedlink9" rel="bookmark" title="sometitel9" class="sonra">title9</a></li> 
    <li><a href="http://wantedlink10 " rel="bookmark" title="sometitel10" class="sonra">title10</a></li> 
</ul> 
</div> 

和我的代碼是

dim htmldoc as new htmldocument 
htmldoc.loadhtml(source) 
for each link as htmlnode in htmldoc.document.selectnodes("//*[@id='catlist-listview']/ul") 
textbox3.text = link.innerhtml 
next 

輸出

 <li><a href="http://wantedlink1" rel="bookmark" title="sometitel1" class="sonra">title1</a></li>  
     <li><a href="http://wantedlink2" rel="bookmark" title="sometitel2" class="sonra">title2</a></li> 
     <li><a href="http://wantedlink3" rel="bookmark" title="sometitel3" class="sonra">title3</a></li> 
     <li><a href="http://wantedlink4" rel="bookmark" title="sometitel4" class="sonra">title4</a></li> 
     <li><a href="http://wantedlink5" rel="bookmark" title="sometitel5" class="sonra">title5</a></li> 
     <li><a href="http://wantedlink6" rel="bookmark" title="sometitel6" class="sonra">title6</a></li> 
     <li><a href="http://wantedlink7" rel="bookmark" title="sometitel7" class="sonra">title7</a></li> 
     <li><a href="http://wantedlink8" rel="bookmark" title="sometitel8" class="sonra">title8</a></li> 
     <li><a href="http://wantedlink9" rel="bookmark" title="sometitel9" class="sonra">title9</a></li> 
     <li><a href="http://wantedlink10 " rel="bookmark" title="sometitel10" class="sonra">title10</a></li> 

我想要得到一切,只獲得所有屬性值http://wantedlink1http://wantedlink10 我嘗試屬性(「href」),但我只有一個鏈接 我想列出所有這樣的鏈接:

http://wantedlink1 
http://wantedlink2 
http://wantedlink3 
. 
. 
. 
http://wantedlink10 

任何幫助?

回答

1

基本上,您可以更改XPath爲SelectNodes()選擇單個<a>元素而不是<ul>。然後從這一點開始,將很容易遍歷結果並逐個獲取屬性。或者你使用LINQ,例如像以下實現相同的:

'select <a> elements' 
Dim links = htmldoc.Document.SelectNodes("//*[@id='catlist-listview']/ul/li/a") 
'project to IEnumerable of href attribute value' 
Dim hrefs = links.Cast(Of HtmlNode)().Select(Function(x) x.GetAttributeValue("href", "")) 
'join the `hrefs`, separated by newline, into one string' 
textbox3.text = String.Join(Environment.NewLine, hrefs) 

dotnetfiddle demo

+0

非常感謝您配合它,它工作 –

+1

@SnoopyOhoo權,是混合了C#語法那裏。歡迎您,並感謝您的更正 – har07

+0

你能告訴我如何列出鏈接'listbox'而不是'textbox3' 我可以列出與鏈接'listbox1.items.addrange(textbox3.lines)' 但我希望它直接到'listbox1'並刪除'textbox3' –