首页 > 解决方案 > 无法使用 XPath 获取 div 标签的内容

问题描述

我正在尝试获取<div>标签的内容。使用 Safari 和 Firefox,我得到了我想要获取的数据的 xpath。

div标签是:

<div class="RoundRobinTable-cell RoundRobinTable-cell--center">​16 - 4​&lt;/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 标签中获取。但是,当我尝试在 Safari 中使用控制台验证 xpath 时,它给了我整个 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 和/或东西?

标签: c#htmlxpathxamarin.forms

解决方案


而不是使用绝对路径。试试下面的相对 xpath :

//div[@class='RoundRobinTable-cell RoundRobinTable-cell--center']

推荐阅读