HtmlAgilityPack - Obtenir du contenu DIV

c# html html-agility-pack scrape string

Question

J'essaie d'obtenir du texte d'une DIV avec HtmlAgilityPack dans WinForms C #.

Mon code est:

var doc = new HtmlAgilityPack.HtmlDocument();
doc.LoadHtml("http://www.tibia.com/news/?subtopic=latestnews");
var res = doc.DocumentNode.SelectSingleNode("//div[@id='PlayersOnline']");
var content = res.InnerHtml;

// Print content
MessageBox.Show(content);

Le contenu que j'essaie d'obtenir provient de: http://www.tibia.com/news/?subtopic=latestnews

En haut à droite du site Web, une zone indique le nombre de "joueurs en ligne". Je veux obtenir ce montant.

Le code HTML sur le site Web ressemble à ceci:

<div id="PlayersOnline" onclick="window.location = 'https://secure.tibia.com/community/?subtopic=worlds';">11723<br>Players Online</div>

Donc, je veux obtenir 11723 en sortie. Ce ne serait pas grave si je reçois la totalité: 11723<br>Players Online comme sortie. Je pourrais simplement correspondre à une expression rationnelle plus tard ou scinder une chaîne ou autre chose, pour ignorer la balise br.

Mais aucun de mes codes ne fonctionne et je ne sais pas pourquoi. l'application se bloque et dit

System.NullReferenceException: 'Object reference not set to an instance of an object.'

<res>5__8 was null.

Réponse populaire

Essayez InnerText au lieu d' InnerHtml

var content = doc.DocumentNode.SelectSingleNode("//div[@id='PlayersOnline']").InnerText;



Sous licence: CC-BY-SA with attribution
Non affilié à Stack Overflow
Est-ce KB légal? Oui, apprenez pourquoi
Sous licence: CC-BY-SA with attribution
Non affilié à Stack Overflow
Est-ce KB légal? Oui, apprenez pourquoi