Cercando di ottenere un singolo nodo con Html Agility Pack

c# html html-agility-pack

Domanda

Sto cercando di ottenere un singolo nodo dopo aver individuato il htmlnode con un tag specifico. Ma quello che torno è un errore:

Il riferimento non impostato su un'istanza di un oggetto.

Ora ecco il codice:

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']");

Il mio scopo è quello di ottenere tutti i nodi all'interno del tag li XU. Conosco il nome delle classi.

Anche solo per notare che quando sto sostituendo l'ultima riga di codice con un

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']");

quindi l'argomento tag all'interno di SelectSingleNode funziona correttamente.

Risposta popolare

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



Autorizzato sotto: CC-BY-SA with attribution
Non affiliato con Stack Overflow
È legale questo KB? Sì, impara il perché
Autorizzato sotto: CC-BY-SA with attribution
Non affiliato con Stack Overflow
È legale questo KB? Sì, impara il perché