Chrome-Kopie XPath gibt NULL zurück, wenn HtmlAgilityPack verwendet wird

c# html-agility-pack xpath

Frage

Ich folge der Antwort hier: 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;

Aber der Xpath gibt eine Nullreferenz zurück. Ich habe verschiedene Varianten ausprobiert, aber nichts funktioniert. Ich habe XPath noch nie zuvor benutzt. Habe ich etwas übersehen?

Akzeptierte Antwort

Es gibt kein <tbody/> -Element in dieser Tabelle, entfernen Sie den Schritt /tbody axis, und Ihre Abfrage funktioniert /tbody . Siehe " Warum funktioniert meine XPath-Abfrage (Scraping von HTML-Tabellen) nur in Firebug, aber nicht die Anwendung, die ich entwickle? " Für Details.

Zusätzlicher Hinweis: XPath unterstützt auch einfache Anführungszeichen für Zeichenfolgen, sodass Sie doppelte Anführungszeichen nicht umgehen müssen.

Dieser XPath-Ausdruck gibt das gesuchte Element zurück:

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



Lizenziert unter: CC-BY-SA with attribution
Nicht verbunden mit Stack Overflow
Ist diese KB legal? Ja, lerne warum
Lizenziert unter: CC-BY-SA with attribution
Nicht verbunden mit Stack Overflow
Ist diese KB legal? Ja, lerne warum