【发布时间】:2017-08-04 00:21:50
【问题描述】:
我创建的程序需要从网站读取信息,然后将其存储。我收到错误消息:
System.ArgumentNullException:值不能为空。
参数名称:source
在 System.Linq.Enumerable.Select[TSource,TResult](IEnumerable1 source, Func2 选择器)
但是它并不总是错误地运行。就像有时它起作用,有时它不起作用一样。怎么会这样? 这是给我第 4 行错误的代码。
IEnumerable<string> webtemp = Enumerable.Empty<string>();
if (datastring.Contains("today_nowcard-temp"))
{
webtemp = doc.DocumentNode.SelectNodes("//div[@class = 'today_nowcard-temp']/span").Select(d => d.InnerText.Trim());
foreach (var this_header in webtemp)
{
string[] temporary = this_header.Trim().Replace("Â", "-").Replace(" ", "-").Split('-');
int f = (Convert.ToInt32(temporary[0]));
_actualData[0].temp = GetCelsius(f);
//Console.WriteLine(_actualData[0].temp);
}
}
【问题讨论】:
-
this
DocumentNode.SelectNodes("//div[@class = 'today_nowcard-temp']/span")返回一个空值,但没有看到您在doc中拥有的内容,无法说明为什么 xpath 不返回结果。 -
它有时会返回一个结果,据我所知,xpath 没有改变。
-
我们需要查看您文档的 xml 是否是 @rene 获取的内容。
-
看起来您遇到了类似的问题:stackoverflow.com/questions/38166949/…
-
@T.W.:即使您的 xpath 没有改变,您正在下载的文档也可能是。