2013-03-18 3 views
1

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

<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-кода '. Спасибо

+1

«Я не писал никакого кода еще в C#» Первый написать код, затем задавайте вопросы. –

+1

Если вам не нравится/знать XPath, попробуйте использовать [CsQuery] (https://github.com/jamietre/CsQuery) вместо пакета HTML Agilitiy. Это порт jQuery для C#. – Oded

ответ

1

Если вы знакомы с 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 
     } 
} 

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

Смежные вопросы