¿Cómo obtener div por clase en HtmlAgilityPack?

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

Pregunta

Estoy siguiendo este tutorial , pero tengo un problema, no sé cómo obtener htmlNode por nombre de clase.

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

Respuesta popular

Suponiendo que desea seleccionar un elemento <div> que tenga un valor de atributo de clase igual a "directoryItems", y sabe que solo habrá un elemento que cumpla los criterios (o que simplemente seleccione la primera aparición si hay más de uno), puede usar el método .SelectSingleNode() con la siguiente consulta XPath:

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


Related

Licencia bajo: CC-BY-SA with attribution
No afiliado con Stack Overflow
Licencia bajo: CC-BY-SA with attribution
No afiliado con Stack Overflow