C# 如何在HtmlAlityPack中按类获取div?

C# 如何在HtmlAlityPack中按类获取div?,c#,windows-phone-8,html-agility-pack,C#,Windows Phone 8,Html Agility Pack,我是,但我有一个问题,我不知道如何通过类名获取htmlNode HtmlDocument htmlDoc = new HtmlAgilityPack.HtmlDocument(); htmlDoc.OptionFixNestedTags = true; htmlDoc.LoadHtml(e.Result); HtmlNode divContainer = htmlDoc.GetElementbyId("directoryItems");//My problem here,I want to ge

我是,但我有一个问题,我不知道如何通过类名获取
htmlNode

HtmlDocument htmlDoc = new HtmlAgilityPack.HtmlDocument();
htmlDoc.OptionFixNestedTags = true;
htmlDoc.LoadHtml(e.Result);
HtmlNode divContainer = htmlDoc.GetElementbyId("directoryItems");//My problem here,I want to get by class name html
if (divContainer != null)
{
     HtmlNodeCollection nodes = divContainer.SelectNodes("//table/tr");
     ....
}
试试这个:

HtmlNodeCollection divContainer = htmlDoc.DocumentNode.SelectNodes("//div[@class='myClass']");

这将返回具有class=“myClass”

的div节点集合,假设您希望选择一个class属性值等于“directoryItems”的
元素,并且您知道只有一个元素满足条件(或者如果有多个元素,您只需选择第一个匹配项),您可以对以下XPath查询使用
.SelectSingleNode()
方法:

HtmlNode divContainer = htmlDoc.DocumentNode
                               .SelectSingleNode("//div[@class='directoryItems']");

但它在HtmlNodeCollection nodes=divContainer.SelectNodes(“//table/tr”)中得到错误“HtmlNodeCollection.HtmlAgilityPack不包含SelectNodes的定义…”;SelectNodes返回HtmlNodes的集合,而不仅仅是单个节点,因为类不能保证唯一。如果你只对第一次发生感兴趣,你可以做
.First
。@user2782709查看上面的注释,它解释得很清楚