我正在尝试使用 c# 获取最新的 NWS 雷达图像。NWS 网站上有一些目录,其中包含最新图像的列表。但是,文件是按上传日期命名的,而不是按数字顺序命名的。它们通常每隔几分钟上传一次,但确切的分钟数可能相差 5 分钟。为了获取图像的 URL,我可以编写一个 XML 解析器来从索引页面中提取 URL,但是对于这样一个简单的任务来说,这似乎过于复杂。此外,此索引页面不是 API,如果他们可能更改某些格式,可能会搞砸 XML 解析器。有没有其他方法可以获取最新图像的 URL?
问问题
1641 次
1 回答
1
html 并不总是有效的 Xml。但是您可以为此使用真正的 html 解析器,例如HtmlAgilityPack。
WebClient wc = new WebClient();
var page = wc.DownloadString("http://radar.weather.gov/ridge/RadarImg/NCR/OKX/?C=M;O=D");
HtmlAgilityPack.HtmlDocument doc = new HtmlAgilityPack.HtmlDocument();
doc.LoadHtml(page);
var imageLink = doc.DocumentNode.SelectNodes("//td/a[@href]")
.Select(a=>a.Attributes["href"].Value)
.OrderByDescending(a=>a)
.First();
- 编辑 -
忘记这个答案,然后去美国天气雷达数据馈送或 API?
于 2012-10-27T18:01:30.080 回答