如何使用HtmlAgilityPack解析XML文件

3

我需要从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页面中使用了这个列表视图控件。

使用方法:

using

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

但是它显示错误

值不能为 null。 参数名: source

问题出在哪里?使用 HtmlAgilityPack 是否可以抓取 xml 节点数据? 请给予建议 谢谢


为什么不使用XML库而使用HtmlAgilityPack呢? - jerjer
@jerjer:实际上我正在使用HtmlAgilityPack来抓取HTML数据,但是当我遇到XML文件时,我需要寻找一种方法来实现这一点。 - CracLock
2个回答

0
错误显示值为空。因此有两种可能性。
select new
         {
                LinkURL = info.InnerText??string.Empty,
                Content = content.InnerText??string.Empty,

         };

或者在aspx中。我认为字符串应该像这样减去:

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

0

如果我选择了Jerjer建议的XML库,会怎样呢? - CracLock
它比XML库更高效吗? - CracLock
@CracLock,我还没有在HtmlAgilityPack和XML库之间进行基准测试,但我认为在效率方面差别不大。在我看来,当处理xml文件时,使用XML库比使用HtmlAgilityPack更简单。 - jerjer

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接