Анализ ссылок на htmlagilitypack и внутренний текст

c# html-agility-pack

Вопрос

Я новичок в htmlagilitypack, я пытаюсь выяснить способ, которым я смогу получить ссылки из HTML, настроенного таким образом

<div class="std"><div style="border-right: 1px solid #CCCCCC; float: left; height: 590px; width: 190px;"><div style="background-color: #eae3db; padding: 8px 0 8px  20px; font-weight: bold; font-size: 13px;">test</div>
    <div>
    <div style="font-weight: bold; margin: 5px 0 -6px;">FEATURED</div>
    <span class="widget widget-category-link"><a href="http://www.href1.com"><span>cat1</span></a></span>
     <span class="widget widget-category-link"><a href="http://www.href1.com"><span>cat2</span></a></span>
</div></div>

Я еще не писал код в c #, но мне было интересно, может ли кто-нибудь сообщить, какие теги должны указывать, чтобы получить ссылки и внутренний текст, когда нет HTML-кода. благодаря

Популярные ответы

Если вы знакомы с XPATH, вы сможете перемещаться по элементам и атрибутам html, чтобы получить все, что захотите. Чтобы получить каждый href в приведенном выше примере, вы можете написать код следующим образом:

 const string xpath = "/div//span/a";

 //WebPage below is a string that contains the text of your example
 HtmlNode html = HtmlNode.CreateNode(WebPage);
 //The following gives you a node collection of your two <a> elements
 HtmlNodeCollection items = html.SelectNodes(xpath);
 foreach (HtmlNode a in items)
 {    
      if (a.Attributes.Contains("href"))
      //Get your value here
      {
           yourValue = a.Attributes["href"].Value
      }
 }

Примечание. Я не запускал или не тестировал этот код.



Related

Лицензировано согласно: CC-BY-SA with attribution
Не связан с Stack Overflow
Является ли этот КБ законным? Да, узнайте, почему
Лицензировано согласно: CC-BY-SA with attribution
Не связан с Stack Overflow
Является ли этот КБ законным? Да, узнайте, почему