HtmlAgilityPack获取DIV中的所有链接

.net c# html-agility-pack xml xpath

我希望能够从div内部获得2个链接。

目前我可以选择一个,但是它有更多似乎不起作用。

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中获取它:

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.";

任何帮助表示赞赏,在此先感谢。

一般承认的答案

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

它使用class = 'myclass'抓取div所有后代a元素。

//a@href是不正确的XPath。




许可下: CC-BY-SA with attribution
不隶属于 Stack Overflow
这个KB合法吗? 是的,了解原因
许可下: CC-BY-SA with attribution
不隶属于 Stack Overflow
这个KB合法吗? 是的,了解原因