如何从外部XML文件中检索数据并将其放在HTML文件中?

时间:2012-05-22 17:51:09

标签: javascript xml external

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

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

3 个答案:

答案 0 :(得分:1)

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

答案 1 :(得分:1)

关于使用Yahoo!有一个interesting article管道将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

<强>陷阱!

请注意雅虎希望将callback url param命名为 _callback

关于Cross-domain communications with JSONP的精彩摘要,帮助了很多人提出了这个答案。

答案 2 :(得分:0)

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

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

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