Come ottenere div per classe in HtmlAgilityPack?

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

Domanda

Sto seguendo questo tutorial , ma ho un problema, non so come ottenere htmlNode per nome della 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");
     ....
}

Risposta popolare

Supponendo che tu voglia selezionare un elemento <div> con valore di attributo di classe uguale a "directoryItems", e sai che ci sarà un solo elemento che soddisfa i criteri (o vuoi semplicemente selezionare la prima occorrenza se ce ne sono più di uno), puoi usare il metodo .SelectSingleNode() con la seguente query XPath:

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



Autorizzato sotto: CC-BY-SA with attribution
Non affiliato con Stack Overflow
È legale questo KB? Sì, impara il perché
Autorizzato sotto: CC-BY-SA with attribution
Non affiliato con Stack Overflow
È legale questo KB? Sì, impara il perché