2012-05-22 45 views
0

我試圖從不在我的網站的服務器上的XML文件中檢索數據,然後將這些數據用於各種事物,例如圖表。這裏有一個例子:http://forecast.weather.gov/MapClick.php?lat=40.78158&lon=-73.96648&FcstType=dwml。這是一個包含中央公園天氣數據的XML文件。我想要檢索<value>標記中的數據,該標記位於<pressure>標記中,因此我可以創建一個具有氣壓的圖表。我寧願用JavaScript來做這件事,但我不認爲當文件不在我的服務器上時可以這樣做。如何從外部XML文件中檢索數據並將其放入HTML文件中?

注:我想不同的解決方案,以從其他地方獲取的壓力數據,因爲我想要檢索其他部分來自其它XML文件中的數據也是如此。

回答

1

有一個interesting article關於使用Yahoo!管道將Xml天氣數據轉換爲JSON,並將結果用於網頁,而不需要任何服務器端的東西(PHP,捲曲等)。

編輯

作爲新的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參數去命名_callback

Cross-domain communications with JSONP這幫助了很多想出這個答案很好的總結。

+0

我認爲這是一個完美的解決方案,但是,我無法在[這裏]工作(http://jsfiddle.net/BvBzL/1/)。你可以試着弄清楚哪裏出了問題?我知道管道工作,所以它必須是JavaScript。 – Ian

+0

大家好消息!它更容易,因爲jQuery已經構建了所有hacky位;-) – Filburt

1

如果您的JavaScript代碼位於服務器(而不是移動設備)上,請讓PHP代碼加載xml,將其轉義並將其插入HTML頁面。然後,您只需在代碼中抓取並使用DOMParser進行處理即可。

+0

對不起,我需要更詳細的解釋。我還沒有學習任何PHP編程語言。 (接下來在我的名單:) – Ian

0

您可以使用curl將數據提取到您的服務器並從那裏對其執行操作。

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

這會給你一個名爲data.txt的文件中的信息。然後,您可以解析服務器端,然後只提供所需的數據位,或者讓整個文件可用於您的客戶端,因爲它們現在都在同一個域中。

+0

聽起來不錯,但我從來沒有聽說過捲曲。我該如何實現這個目標? – Ian

+0

再一次,很難說不知道你的服務器端設置是什麼。 –

+0

這是一個學校服務器,所以我沒有太多的控制。我知道以下內容:它不支持表單,它支持FTP,它支持JavaScript,並且它支持CSS。 – Ian

相關問題