C# HtmlAgilityPack子节点跳过标记<;菜单>;

C# HtmlAgilityPack子节点跳过标记<;菜单>;,c#,html,C#,Html,我正在尝试解析网站 我需要把所有的菜单元素都放进去 string Url = "http://r-hockey.ru/"; var web = new HtmlWeb { AutoDetectEncoding = false, OverrideEncoding = Encoding.GetEncoding(1251), }; HtmlAgilityPack.HtmlDocument doc = web.Load(Url); HtmlNodeCollection nodes

我正在尝试解析网站 我需要把所有的菜单元素都放进去

string Url = "http://r-hockey.ru/";

var web = new HtmlWeb
{
    AutoDetectEncoding = false,
    OverrideEncoding = Encoding.GetEncoding(1251),
};

HtmlAgilityPack.HtmlDocument doc = web.Load(Url);

HtmlNodeCollection nodes = doc.DocumentNode.SelectNodes("//td[@style='margin-left: 5px; vertical-align: top;'][@width='80%']");

if (nodes != null && nodes.Count == 1)
{
    var menuList = nodes.First();
    var list = menuList.ChildNodes.ToArray();
    ...
}
我无法将菜单元素放入列表。 但是它们在menuList.subjections()中。 如果我使用jquery,我会把它们当作孩子

$("td[style='margin-left: 5px; vertical-align: top;'][width='80%']").children();
显然,我的html解析错误,我不明白,为什么。请帮帮我。
我可以从menuList.subjections()获取菜单标记,但我需要在绿点后存储大写文本,并按正确顺序存储菜单数据

我刚刚试过你的代码,效果很好。你从列表中得到了什么?

我刚刚尝试了你的代码,效果很好。你从列表中得到了什么?

我正在使用google chrome,我在“Inspect”中看到的结构与在“view page source”中看到的结构不同 因此,在我的文档菜单中实际上是我的td中的标记的子项。 在我修改后,一切都正常工作:

var menuList = nodes.First().SelectNodes(".//table").Last();

我正在使用google chrome,我在“Inspect”中看到的结构与在“view page source”中看到的不同 因此,在我的文档菜单中实际上是我的td中的标记的子项。 在我修改后,一切都正常工作:

var menuList = nodes.First().SelectNodes(".//table").Last();

有趣的我只得到名为“#text”、“style”、“noindex”和“table”的标签。真有趣。我只得到名为“#text”、“style”、“noindex”和“table”的标签。