如何使用htmlagilitypack刮取xml文件

时间:2012-02-02 07:34:42

标签: c# asp.net screen-scraping html-agility-pack

我需要从http://feeds.feedburner.com/Torrentfreak抓取一个xml文件,以获取其链接和说明。

我使用了这段代码:

    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(); 

我在列表视图控件中使用它来在asp.net页面上显示。 使用

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

但显示错误

值不能为空。 参数名称:source

有什么问题?是否可以使用HtmlAgilityPack来刮取(获取)xml节点数据? 请建议 感谢

2 个答案:

答案 0 :(得分:0)

错误表示该值为null。所以也有可能的

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

         };

或在aspx中。我认为它应该是字符串中的负数:

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

答案 1 :(得分:0)

尝试使用RSS库而不是HtmlAgilityPack:

以下是一些可能对您有帮助的链接: