尝试使用Html Agility Pack获取单个节点

c# html html-agility-pack

在找到带有特定标记的htmlnode后,我正试图获得单个节点。但我得到的是一个错误:

你调用的对象是空的。

现在这里是代码:

HtmlWeb htmlWeb = new HtmlWeb();
// Creates an HtmlDocument object from an URL
HtmlAgilityPack.HtmlDocument document = htmlWeb.Load(url);
// Targets a specific node
// If there is no node with that Id, someNode will be null
HtmlNode someNode = document.GetElementbyId("<li name=\"XU\">");
var parseString = someNode.SelectSingleNode("//span[@class='lp']");

我的目的是获取XU li标签内的所有节点。我知道班级的名字。

还要注意的是,当我用a替换最后一个代码行时

HtmlWeb htmlWeb = new HtmlWeb();
// Creates an HtmlDocument object from an URL
HtmlAgilityPack.HtmlDocument document = htmlWeb.Load(url);
// Targets a specific node
// If there is no node with that Id, someNode will be null
HtmlNode someNode = document.GetElementbyId("<li name=\"XU\">");
var parseString = someNode.SelectSingleNode("//span[@class='lp']");

那么SelectSingleNode中的tag参数工作正常。

热门答案

HtmlNode someNode = document.SelectSingleNode("//li[@name='XU']").SelectSingleNode("/span[@class='lp']");



许可下: CC-BY-SA with attribution
不隶属于 Stack Overflow
这个KB合法吗? 是的,了解原因
许可下: CC-BY-SA with attribution
不隶属于 Stack Overflow
这个KB合法吗? 是的,了解原因