Comment gratter un fichier XML avec htmlagilitypack

asp.net c# html-agility-pack screen-scraping

Question

Je dois gratter un fichier xml de http://feeds.feedburner.com/Torrentfreak pour ses liens et sa description.

J'ai utilisé ce code:

    var webGet = new HtmlWeb();
                var document = webGet.Load("http://feeds.feedburner.com/TechCrunch");
    var TechCrunch = from info in document.DocumentNode.SelectNodes("//channel")
                                 from link in info.SelectNodes("//guid[@isPermaLink='false']")
                                 from content in info.SelectNodes("//description")
     select new
                                 {
                                     LinkURL = info.InnerText,
                                     Content = content.InnerText,

                                 };
lvLinks.DataSource = TechCrunch;
            lvLinks.DataBind(); 

J'ai utilisé cela dans le contrôle d'affichage de liste pour afficher sur la page asp.net. en utilisant

<%# Eval("LinkURL") %>  -  <%# Eval("Text") %> 

Mais son erreur montrant

La valeur ne peut pas être nulle. Nom du paramètre: source

quel est le problème ? Et est-il possible de gratter (récupérer) des données de nœuds XML en utilisant HtmlAgilityPack? S'il vous plaît suggérer Merci

Réponse acceptée

Essayez d’utiliser la bibliothèque RSS au lieu du HtmlAgilityPack:

Voici quelques liens qui pourraient vous aider:


Réponse populaire

L'erreur dit que la valeur est null. Donc, il y a aussi peut-être

select new
         {
                LinkURL = info.InnerText??string.Empty,
                Content = content.InnerText??string.Empty,

         };

ou dans l'aspx. Je pense que ça devrait être moins dans la chaîne comme ceci:

<%# Eval("LinkURL")??string.Empty %>+"-"+<%# Eval("Text")??string.Empty %> 


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