HtmlAgilityPack - Как сначала выбрать тег href при использовании selectnodes - PullRequest
0 голосов
/ 13 ноября 2018

Я пытаюсь выбрать первый тег и получить значение href.Но проблема в том, что я использую SelectNodes.

Вот код, из которого я хочу выбрать значение href:

<li>
<a class="img" href="link1"></a>
<div class="m_text">
<a class="title" href="link2" rel="27418">A Story</a>
<p><span class="stars star45"></span><span class="rate">4.35</span></p>
<p class="info" title="Action"></p>
<p class="nowrap latest"><a href = "link3" >< span class="nowrap">A Story</span> 29</a></p>
</div>
</li>

<li>
<a class="img" href="link1"></a>
<div class="m_text">
<a class="title" href="link2" rel="27418">A Story</a>
<p><span class="stars star45"></span><span class="rate">4.35</span></p>
<p class="info" title="Action"></p>
<p class="nowrap latest"><a href = "link3" >< span class="nowrap">A Story</span> 29</a></p>
</div>
</li>

Теперь, как вы видите, мне нужно выбрать первое значение hrefтега несколько раз, а затем я буду использовать foreach.

HTML-код, который я хочу получить:

<a class="img" href="link1"></a>

Мой код:

 var documentx = new HtmlWeb().Load(post.ExtLink);
        var div = documentx.DocumentNode.SelectNodes("//div[@id='content']/*//ul[@class='list']//li");

        var test = div.Descendants("a")
                            .Select(a => a.GetAttributeValue("href", null))
                            .Where(s => !String.IsNullOrEmpty(s))
                            .ToList();

МойКод работает нормально, но он получает все значения тега, и я только ищу первое значение тега href.

1 Ответ

0 голосов
/ 14 ноября 2018

Изменение

.Where(s=> !String.IsNullOrEmpty(s))

Для

.FirstOrDefault(s=> !String.IsNullOrEmpty(s))

И удалить .ToList () в конце.

...