HtmlAgilityPack Получить все ссылки внутри DIV

.net c# html-agility-pack xml xpath

Вопрос

Я хочу иметь возможность получить 2 ссылки из div.

В настоящее время я могу выбрать один, но когда есть больше, он, похоже, не работает.

HtmlWeb web = new HtmlWeb();
        HtmlDocument doc = web.Load(url);

HtmlNode node = doc.DocumentNode.SelectSingleNode("//div[@class='myclass']");

            if (node != null)
            {
                foreach (HtmlNode type in node.SelectNodes("//a@href"))
                {
                    recipe.type += type.InnerText;
                }
            }
            else
                recipe.type = "Error fetching type.";

Попытка получить его из этого фрагмента HTML:

<div class="myclass">
<h3>Not Relevant Header</h3>
    <a href="#">This text</a>, 
    <a href="#">and this text</a>
</div>

Любая помощь приветствуется, спасибо заранее.

Принятый ответ

var div = doc.DocumentNode.SelectSingleNode("//div[@class='myclass']");
if(div!=null)
{
     var links = div.Descendants("a")
                    .Select(a => a.InnerText)
                    .ToList();
}

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

Используйте этот XPath:

//div[@class = 'myclass']//a

Она захватывает все дочерние элементы в a div с class = 'myclass' .

И //a@href является неправильным XPath.



Related

Лицензировано согласно: CC-BY-SA with attribution
Не связан с Stack Overflow
Лицензировано согласно: CC-BY-SA with attribution
Не связан с Stack Overflow