Comment se diviser par classe dans HtmlAgilityPack?

c# html-agility-pack windows-phone-8

Question

Je suis ce tutoriel , mais j'ai un problème, je ne sais pas comment obtenir htmlNode par nom de classe.

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

Réponse populaire

En supposant que vous souhaitiez sélectionner un élément <div> dont la valeur d'attribut de classe est égale à "directoryItems" et que vous savez qu'un seul élément répond aux critères (ou que vous souhaitez simplement sélectionner la première occurrence s'il en existe plusieurs) vous pouvez utiliser la méthode .SelectSingleNode() avec la requête XPath suivante:

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



Sous licence: CC-BY-SA with attribution
Non affilié à Stack Overflow
Est-ce KB légal? Oui, apprenez pourquoi
Sous licence: CC-BY-SA with attribution
Non affilié à Stack Overflow
Est-ce KB légal? Oui, apprenez pourquoi