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”的标签。