c# - 从 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>
]]>
解决方案
您的 web.Load(Url) 是否响应示例 XML 文件示例?如果是这样,那么在 CDATA 中选择节点将根本不起作用。CDATA[...] 中的内容仅被视为文本,其内容都不会构成文档节点树的一部分。因此,您的第一个SelectSingleNode("//table")将始终给您一个空结果。
顺便说一句:您应该在设置 table 和 doc 变量后测试 null 值,就像对行一样。这两个,都可以返回null。
推荐阅读
- nginx - 使用 pm2 和 nginx 将 Nuxt SSR 部署到域上的子目录
- mysql - MySQL插入失败
- javascript - 如何定位这个 iframe CSS?
- laravel - Laravel 8:未定义的索引
- linux - 在 Linux 上从 IIS 迁移到 Docker 时的集成安全性
- perforce - 如何将 perforce 工作区中的文件与仓库中未更改的文件进行比较?
- spring-boot - 无法将“eureka.client.enabled”下的属性绑定到布尔值
- c# - C#texture2d如何转换为cpu图像
- python - 'web:' 不被识别为 Heroku 的内部或外部命令
- javascript - 如何检测 2021 年使用 javascript 关闭的标签页?