Получить первый линк в блоке

195
26 мая 2018, 00:20

Подскажите пожалуйста как брать текст только из первой пары <a></a>.

<td rowspan="1" class="div_naimen">
    <a href="http://www.tools.by/?q=kat//p971673">Набор головок и бит 94пр.1/4",1/2" PRO STARTUL NEW CASE (PRO-094)+АКЦИЯ молоток антивибр. SE2001-01</a>
    <a href="http://www.tools.by/?q=node/34839&link_catalog" title="Товар участвует в акции. Покупай STRATUL, GEPARD, Le Notre и ВОЛАТ и получай подарки!">
        <img src="/si/icon_akcija.png" width="16" height="16">
    </a>
</td>

На данный момент пытаюсь сделать так :

var nameDoc = document.Result.QuerySelectorAll(@"td[class='div_naimen'] a");

но в результате получаю не только значение первой пары <a></a>, а всех пар <a></a> в этом блоке.

Answer 1

Воспользуйтесь linq, операторы .First или .FirstOrDefault (если не уверены, что такого элемента может и не быть на странице:

var elements = document.QuerySelectorAll("td.div_naimen a");
var firstUrl = elements.FirstOrDefault();
Console.WriteLine(firstUrl.GetAttribute("href"));
//  foreach (var element in elements)
//  {
//      var url = element.GetAttribute("href");
//      Console.WriteLine(url);
//  }

Ну или прям сразу в однострочник соединяйте:

Console.WriteLine(document.QuerySelectorAll("a").First().GetAttribute("href"));

PS Кстати, кто будет в linqpad этот пример пробовать запускать - обратите внимание, что вы должны будете добавить <table> к html, а не запускать оригинальный пример в котором сразу <td> идёт. Либо упростите выражение до QuerySelectorAll("a") чтобы найти элементы.

READ ALSO
Один экземпляр программы

Один экземпляр программы

Допустим, есть некоторая программа, которая что то делает с базойПользователи могут запускать ее на разных машинах

209
Как называется кнопка для работы с dataGridView

Как называется кнопка для работы с dataGridView

Как называется кнопка для работы с dataGridView те

169
Вместо нанесения урона сразу убивает

Вместо нанесения урона сразу убивает

у меня проблемка небольшая

191
Как отправить корректно POST запрос на WebApi C#?

Как отправить корректно POST запрос на WebApi C#?

Взялся за изучение NetCoreЗахотел проверить самописное WebApi на простых запросах используя JavaScript

202