2013-01-08 35 views
0

所以我想在論壇上獲得在線用戶列表。這裏是html的樣子:HtmlAgilityPack - 獲取div內容

<!-- logged-in users --> 
      <div id="wgo_onlineusers" class="wgo_subblock section"> 
       <h3 class="blocksubhead"><img src="images/metro/red/misc/users_online.png" alt="Currently Active Users" />Currently Active Users</h3> 
       <div> 
        <p>There are currently <a href="online.php">3 users online</a>. <span class="shade">3 members and 0 guests</span></p> 
        <p>Most users ever online was 23, 01-06-2013 at <span class="time">12:09 PM</span>.</p> 

        <ol class="commalist" id="wgo_onlineusers_list"> 

          <li><a class="username" href="http://website.com/member.php?u=13"><span class="vip_username">Duncanrp</span></a>, </li> 

          <li><a class="username" href="http://website.com/member.php?u=17"><span class="regular_username">Jessica</span></a></li> 

        </ol> 

       </div> 
      </div> 
      <!-- end logged-in users --> 

是否有可能讓每個單獨的用戶使用HtmlAgilityPack在線?用戶使用<li>標籤格式化。

碼我曾嘗試:

  HtmlAgilityPack.HtmlDocument htmlDocument = new HtmlAgilityPack.HtmlDocument(); 

      htmlDocument.LoadHtml("http://www.vizor.us/forum.php"); 

      List<string> onlineUsers = new List<string>(); 

      foreach (HtmlAgilityPack.HtmlNode selectNode in htmlDocument.DocumentNode.SelectNodes("//li/a[@class='username']")) 
      { 
       onlineUsers.Add(selectNode.InnerText); 
      } 

感謝。

回答

1

嘗試

HtmlDocument htmlDocument = new HtmlDocument(); 

htmlDocument.LoadHtml("http://vizor.us/forum.php"); 

List<string> onlineUsers = new List<string>(); 

foreach (HtmlNode selectNode in htmlDocument.DocumentNode.SelectNodes("//li/a[@class='username']")) { 
    onlineUsers.Add(selectNode.InnerText); 
      } 
     } 

這裏是您解析的網站地址的字符串值。

對代碼的解釋,請審查文件在http://html-agility-pack.net/?z=codeplex

+0

我試過這種方法,但我得到的錯誤:「對象引用未設置到對象的實例」在foreach循環中。 –

+0

適用於提供的html代碼片段。我確實必須將這些html包裝在元素中以使其有效。代碼應該給你一個很好的起點去鍛鍊其餘的。 – heads5150

+0

我正在使用網址'http://vizor.us/forum.php',它給了我一個錯誤。更新後。 –