0

我正在尝试从不在我网站服务器上的 XML 文件中检索数据,然后将这些数据用于各种事物,例如图表。这是一个例子: http://forecast.weather.gov/MapClick.php?lat=40.78158&lon=-73.96648& FcstType=dwml。这是一个包含中央公园天气数据的 XML 文件。我想检索标签中的数据,<value>标签中的数据<pressure>,所以我可以创建一个带有气压的图表。我更喜欢用 JavaScript 来做这件事,但是当文件不在我的服务器上时,我认为不可能这样做。

注意:我不想要从其他地方检索压力数据的不同解决方案,因为我也想从其他 XML 文件中检索其他数据。

4

3 回答 3

1

如果您的 javascript 代码位于服务器(而不是移动设备)上,请让 PHP 代码加载 xml,对其进行转义并将其插入 HTML 页面。然后你只需要在你的代码中获取它并使用 DOMParser 处理它。

于 2012-05-22T18:30:47.683 回答
1

有一篇关于使用 Yahoo!的有趣文章。将 Xml 天气数据转换为 JSON 并在网页中使用结果的管道,无需任何服务器端的东西(PHP、curl 等)。

编辑

作为 jQuery 的新手,我不得不进一步挖掘以发现(几乎)第一篇文章中描述的所有内容都可以浓缩为

$.getJSON("<your Yahoo pipes url here>&_callback=?", function (data) {
    alert(data.value.items[0].data[0].parameters.wordedForecast.text[0]);
});

使用 jQuerys 内置JSONP

陷阱!

请注意,Yahoo 希望将callbackurl 参数命名为_callback

关于使用 JSONP 进行跨域通信的很好的总结,这对提出这个答案很有帮助。

于 2012-05-22T23:07:18.560 回答
0

您可以使用 curl 将数据拉到您的服务器并从那里对其进行操作。

curl -o data.txt "http://forecast.weather.gov/MapClick.php?lat=40.78158&lon=-73.96648&FcstType=dwml"

这将为您提供名为 data.txt 的文件中的信息。然后,您可以在服务器端解析它,然后只提供所需的数据位,或者将整个文件提供给您的客户端,因为它们现在都在同一个域中。

于 2012-05-22T18:37:29.990 回答