Хромированная копия XPath, возвращающая значение null при использовании HtmlAgilityPack

c# html-agility-pack xpath

Вопрос

Я следую приведенному здесь ответу: 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;

Но Xpath возвращает нулевую ссылку. Я пробовал несколько вариантов, но ничего не работает, я никогда раньше не использовал XPath, я что-то упускаю?

Принятый ответ

В этой таблице нет элемента <tbody/> , удалите шаг оси /tbody и ваш запрос работает полностью. См. « Почему мой запрос XPath (соскабливание таблиц HTML) работает только в Firebug, но не в приложении, которое я разрабатываю? » Для получения дополнительной информации.

Дополнительная подсказка: XPath также поддерживает одинарные кавычки для строк, поэтому вам не нужно избегать двойных кавычек.

Это выражение XPath вернет элемент, который вы ищете:

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


Лицензировано согласно: CC-BY-SA with attribution
Не связан с Stack Overflow
Является ли этот КБ законным? Да, узнайте, почему
Лицензировано согласно: CC-BY-SA with attribution
Не связан с Stack Overflow
Является ли этот КБ законным? Да, узнайте, почему