首页 > 解决方案 > 从 XML 文档解析 RSS 提要

问题描述

我正在尝试阅读 RSS 提要,但无法正常工作。我正在尝试从 td 标记中获取内容,但代码在解析表行时总是抛出 NullReferenceException。任何帮助表示赞赏。代码:

    public void readRss()
    {
        string Url = "mylink.com";
        HtmlWeb web = new HtmlWeb();
        HtmlDocument doc = web.Load(Url);
        var table = doc.DocumentNode.SelectSingleNode("//table");
        var rows = table.SelectNodes("//tr");
        if (rows != null && rows.Count > 0)
        {
            foreach (var row in rows)
            {
                var cells = row.SelectNodes("//td");
                //do stuff
                
            }
        } 
    }
               
        

XML 文件的格式如下:

    <![CDATA[<table>
        <tr>
            <td>Name</td>
            <td>LastName</td>
            <td>Age</td>
       <tr>
    </table>
    ]]>

标签: c#htmlxml

解决方案


您的 web.Load(Url) 是否响应示例 XML 文件示例?如果是这样,那么在 CDATA 中选择节点将根本不起作用。CDATA[...] 中的内容仅被视为文本,其内容都不会构成文档节点树的一部分。因此,您的第一个SelectSingleNode("//table")将始终给您一个空结果。
顺便说一句:您应该在设置 table 和 doc 变量后测试 null 值,就像对行一样。这两个,都可以返回null。


推荐阅读