Chrome copia XPath restituendo null quando si utilizza HtmlAgilityPack

c# html-agility-pack xpath

Domanda

Sto seguendo la risposta qui: https://stackoverflow.com/a/18066671

string Url = "http://www.owgr.com/ranking";
        HtmlWeb web = new HtmlWeb();
        HtmlDocument doc = web.Load(Url);
        string worldRanking = doc.DocumentNode.SelectNodes("//*[@id=\"ranking_table\"]/div[2]/table/tbody/tr[1]/td[1]")[0].InnerText;

Ma Xpath restituisce un riferimento null. Ho provato diverse varianti ma non funziona nulla, non ho mai usato XPath prima, mi manca qualcosa?

Risposta accettata

Non c'è nessun elemento <tbody/> in quella tabella, rimuovi il passaggio dell'asse /tbody e la tua query funziona perfettamente. Vedi " Perché la mia query XPath (raschiare le tabelle HTML) funziona solo in Firebug, ma non nell'applicazione che sto sviluppando? " Per i dettagli.

Suggerimento aggiuntivo: XPath supporta anche le virgolette singole per le stringhe, quindi non è necessario sfuggire alle virgolette doppie.

Questa espressione XPath restituirà l'elemento che stai cercando:

//*[@id='ranking_table']/div[2]/table/tr[1]/td[1]



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é