1

Имеется кусок html

<a href="?downloadletter=30985" target="_blank" class="articllink"><span class="nobr">№ 01И-3209/17 от 21.12.2017</span></a>        <font class="nobr file_format"><IMG height="16" alt="pdf-формат" hspace="5" src="/i/images/ico_pdf.gif" width="16" border="0" title="pdf-формат">66 Кб</font>

Вопрос: как из него получить адрес ссылки?

?downloadletter=30985

С помощью библиотеки HtmlAgilityPack как здесь описано не выходит, т. к. Attributes возвращают null.

Делал так:

var doc = new HtmlAgilityPack.HtmlDocument();
doc.LoadHtml(str);
string cc = doc.DocumentNode.Attributes["href"].Value;
rawman
  • 179
  • Значит элемент a не был получен. Покажите, как его получаете. – Alexander Petrov Jan 11 '18 at 21:05
  • var doc = new HtmlAgilityPack.HtmlDocument(); doc.LoadHtml(str); string cc = doc.DocumentNode.Attributes["href"].Value; – rawman Jan 11 '18 at 21:12

1 Answers1

5

Для того чтобы получить атрибут href необходимо сначала выбрать ноду в которой находиться этот артрибут. В вашем случае это нода a.

Пример получения ссылки:

    var str = @"<a href=""?downloadletter=30985"" target=""_blank"" class=""articllink""><span class=""nobr"">№ 01И-3209/17 от 21.12.2017</span></a>
                <font class=""nobr file_format""><IMG height=""16"" alt=""pdf-формат"" hspace=""5"" src=""/i/images/ico_pdf.gif"" width=""16"" border=""0"" title=""pdf-формат"">66 Кб</font>";
    var doc = new HtmlAgilityPack.HtmlDocument();
    doc.LoadHtml(str);
    var linkNodes = doc.DocumentNode.SelectNodes("//a[@href]");
    var link = linkNodes.First().Attributes["href"].Value;