嘗試使用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合法嗎? 是的,了解原因