Не удается получить содержимое тега div с помощью XPath - PullRequest
0 голосов
/ 13 сентября 2018

Я пытаюсь получить содержимое тега <div>. Используя Safari и Firefox, я получил xpath данных, которые хочу получить.

Тег div:

<div class="RoundRobinTable-cell RoundRobinTable-cell--center">​16 - 4​</div>​

И xpath (согласно Safari и Firefox)

//*[@id=\"roundrobin\"]/div/div/div[1]/div[2]/div[1]/div/div[2]/div[2]/div[1]/div[2]/div

Моя цель - получить 16 - 4 из этого тега div. Однако, когда я попытался проверить xpath с помощью консоли в Safari, он выдает мне весь тег div вместо 16 - 4. Ниже приведен мой код для C # (который не работает).

var url = "https://worldcup.playoverwatch.com/en-us/";
HtmlWeb web = new HtmlWeb();
var htmldoc = web.Load(url);
string xpath = "//*[@id=\"roundrobin\"]/div/div/div[1]/div[2]/div[1]/div/div[2]/div[2]/div[1]/div[2]/div";
var node = htmldoc.DocumentNode.SelectSingleNode(xpath);
string innerResult = node.InnerHtml;
Console.WriteLine(innerResult);
  1. Как я могу получить правильную строку?
  2. Есть ли способ сделать это более общим? Как видно из ссылки, рядом со страной есть 2 части, GR и MR. Допустим, в моем приложении есть строка, которая представляет собой название страны (которое идеально соответствует названию на веб-сайте). Как я могу получить значения GR и MR для этой строки страны? Без написания конкретного xpath и / или вещей?

1 Ответ

0 голосов
/ 13 сентября 2018

Вместо использования абсолютного пути. попробуйте ниже относительный xpath:

//div[@class='RoundRobinTable-cell RoundRobinTable-cell--center']
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...