2012-11-21 36 views
2

我有,我想提取網頁源代碼的網頁獲取特定數據(我已經收窄,到正是與此有關:只使用類項目

<div class="sideInfoPlayer"> 
<a class="signLink" href="spieler.php?uid=12345" title="Profile"> 
    <span class="wrap">Wagamama</span> 
</a> 

現在的伎倆這裏是我想讓Wagamama這個詞變成一個消息框,但是這個詞在每個網頁上都有變化,所以我需要去獲取那個元素,但是這個頁面上沒有ID,所以我正在考慮搜索類名爲「sideInfoPlayer」,然後在前面的類塊中找到「wrap」類。

我已經寫下了以獲得第一個,但不知道如何解決第二個問題,然後獲得理想的價值。

 HtmlElementCollection col = webBrowser1.Document.GetElementsByTagName("div"); 
     foreach (HtmlElement element in col) 
     { 
      string cls = element.GetAttribute("className"); 
      if (String.IsNullOrEmpty(cls) || !cls.Equals("sideInfoPlayer")) 
       continue; 
     } 

我希望你能幫我取消這個問題。

回答

0

您有更好的選擇。看看http://htmlagilitypack.codeplex.com/

在這裏:How can i parse html string

首先,您需要通過手動或使用NuGet包管理器下載它添加參考HtmlAgilityPack庫。

// loading html into HtmlDocument 
var doc = new HtmlWeb().Load("http://website.com/mypage"); 
// walking through all nodes of interest 
foreach (var node in doc.DocumentNode.SelectNodes("//div[@class='sideInfoPlayer']/span[@class='wrap']")) 
{ 
    // here is your text: node.InnerText 
} 

//div[@class='sideInfoPlayer']/span[@class='wrap']被稱爲Xpath Expression而這一次的字面意思是「讓我與類的所有span元素=包裝是div元素與班的孩子= sideInfoPlayer。

我沒有測試它,但它應該工作

+0

嗨杏, 它剛剛獲得; ... T的工作對我來說 只是要清楚,我有點新本C#作爲我用VB編寫之前很多,並試圖在我的手C#。 請教你如何在一段代碼中向我展示,以便我能理解操作並適應我的需求(我希望)是否太多了。 此致敬禮。 – touyets

+0

@ user1842134更新了我的答案 – Anri

+0

太棒了。謝謝! – touyets