我正在尝试阅读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>
]]>发布于 2021-03-27 20:30:23
您的web.Load(网址)是否响应为示例XML文件示例?如果是这样,那么在CDATA中选择节点将不起作用。CDATA中的内容...仅被视为文本,其任何内容都不会构成文档节点树的一部分。因此,你的第一个SelectSingleNode("//table")总是给你一个空的结果。
顺便说一下:您应该在设置table和doc变量之后测试null值,就像您对行所做的那样。这两个函数都可以返回null。
https://stackoverflow.com/questions/66819995
复制相似问题