2014-12-13 1 views
-2

Просто пытаюсь выяснить, как анализировать информацию из уже разобранной информации.Анализ через innerHTML с помощью HtmlAgilityPack

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'. В классе div «result-link» есть атрибут href, который я пытаюсь захватить значение href. Так что ссылка в основном.

Не может показаться, чтобы понять это. Я попытался использовать массив Attributes:

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... 
    } 
}