Erreur lors de la tentative de chargement de HTML avec htmlagiltypack

.net c# html-agility-pack

Question

J'essaye de lancer ce code

string path = "http://warisons.rssing.com/chan1729325/all_p43.html";
HtmlAgilityPack.HtmlDocument htmlDoc = new HtmlAgilityPack.HtmlDocument();
htmlDoc.LoadHtml(path);
var div = htmlDoc.DocumentNode.Descendants("div");
foreach (var x in div)
{
    Console.WriteLine(x.Attributes["class"].Value);
}

quand je htmlDoc.LoadHtml(path); ce code dans htmlDoc.LoadHtml(path); J'ai eu cette erreur

Localisation de la source pour 'd: \ SVN_CHECKOUT \ htmlagilitypack \ Trunk \ HtmlAgilityPack \ HtmlDocument.cs'. Somme de contrôle: MD5 {4e 14 j3 d5 30 6e 2c bf 84 ab 8a 96 82 4a 8f} Le fichier 'd: \ SVN_CHECKOUT \ htmlagilitypack \ Trunk \ HtmlAgilityPack \ HtmlDocument.cs' n'existe pas. Recherche dans les documents de script pour 'd: \ SVN_CHECKOUT \ htmlagilitypack \ Trunk \ HtmlAgilityPack \ HtmlDocument.cs' ... Recherche dans les projets pour 'd: \ SVN_CHECKOUT \ htmlagilitypack \ Trunk \ HtmlAgilityPack \ HtmlDocument.cs'. Le fichier n'a pas été trouvé dans un projet. Recherche dans le répertoire 'C: \ Program Files (x86) \ Microsoft Visual Studio 12.0 \ VC \ crt \ src \' ... Recherche dans le répertoire 'C: \ Program Files (x86) \ Microsoft Visual Studio 12.0 \ VC \ crt \ src \ vccorlib \ '... Recherche dans le répertoire' C: \ Fichiers de programme (x86) \ Microsoft Visual Studio 12.0 \ VC \ atlmfc \ src \ mfc \ '... Recherche dans le répertoire' C: \ Fichiers de programme (x86) \ Microsoft Visual Studio 12.0 \ VC \ atlmfc \ src \ atl \ '... Recherche dans le répertoire' C: \ Fichiers de programme (x86) \ Microsoft Visual Studio 12.0 \ VC \ atlmfc \ include '... Les paramètres des fichiers source de débogage pour la solution active, indiquez que le débogueur ne demandera pas à l'utilisateur de trouver le fichier: d: \ SVN_CHECKOUT \ htmlagilitypack \ Trunk \ HtmlAgilityPack \ HtmlDocument.cs. Le débogueur n'a pas pu localiser le fichier source 'd: \ SVN_CHECKOUT \ htmlagilitypack \ Trunk \ HtmlAgilityPack \ HtmlDocument.cs'.

Réponse acceptée

Votre tentative de chargement du document HTML à partir de l'URI est incorrecte.

Methof HtmlDocument.LoadHtml charge le HTML à partir de la chaîne fournie. Son argument est donc le texte HTML lui-même, pas l'URI.

Pour charger du HTML à partir de l'URI fourni, vous avez besoin de quelque chose comme:

string path = "http://warisons.rssing.com/chan1729325/all_p43.html";
HtmlAgilityPack.HtmlDocument htmlDoc = new HtmlWeb().Load(path);

Notez également que vous pouvez obtenir NullReferenceException ici:

string path = "http://warisons.rssing.com/chan1729325/all_p43.html";
HtmlAgilityPack.HtmlDocument htmlDoc = new HtmlWeb().Load(path);

puisque vous ne vérifiez pas s'il y a class attribut de class ( x.Attributes["class"] != null ) avant d'accéder à sa valeur.




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