0

我正在尝试使用 c# 获取最新的 NWS 雷达图像。NWS 网站上有一些目录,其中包含最新图像的列表。但是,文件是按上传日期命名的,而不是按数字顺序命名的。它们通常每隔几分钟上传一次,但确切的分钟数可能相差 5 分钟。为了获取图像的 URL,我可以编写一个 XML 解析器来从索引页面中提取 URL,但是对于这样一个简单的任务来说,这似乎过于复杂。此外,此索引页面不是 API,如果他们可能更改某些格式,可能会搞砸 XML 解析器。有没有其他方法可以获取最新图像的 URL?

4

1 回答 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 回答