2014-12-13 72 views
-2

試圖弄清楚如何解析已解析信息中的信息。使用HtmlAgilityPack解析innerHTML

foreach (HtmlNode node in doc.DocumentNode.SelectNodes("//div [@class=\"result-link\"]")) 
{ 
    if (node == null) 
     Console.WriteLine("debug"); 
    else 
    { 
     //string h_url = node.Attributes["a"].Value; 
     Console.WriteLine(node.InnerHtml); 
    } 
} 

所以,你可以看看我想用'string h_url'聲明做什麼。在「result-link」div類中,有一個href屬性,我試圖獲取href值。所以鏈接基本上。

似乎無法弄清楚。我已經使用屬性陣列嘗試:

string h_url = node.Attributes["//a[@href].Value; 

沒有運氣。

回答

2

您可以使用XPath來選擇相對於當前節點的元素:

HtmlNodeCollection nodes = doc.DocumentNode.SelectNodes("//div[@class='result-link']"); 
if (nodes != null) 
{ 
    foreach (HtmlNode node in nodes) 
    { 
     HtmlNode a = node.SelectSingleNode("a[@href]"); 
     if (a != null) 
     { 
      // use a.Attributes["href"]; 
     } 

     // etc... 
    } 
}