2015年5月3日 星期日

W8 xmlrequest

OPENDATA最期開始被政府推行,許多競賽都在鼓勵學生們運用他們手中的死資料,其他能讓它脫胎換骨。從去年就有在看opendata,有感而發的是,台北市政府的資源還是比其他地方多,資料較為齊全,不過近期其他縣市也相繼更新資料,讓大眾可以集思廣益。
要使用opendata就要先找到方法可以許德他們的資料,opendata的資料大多是以csv檔,不過比較有效率能使用的還是Json格式或xml檔。xml或Json格式就可以運用xmlrequest來取得檔案裡面的資料。不過在瀏覽器上,因為有安全的限制,不能直接把資料拿回來。
在專題時,一開始也有碰到這個問題,不過google有開放權限,所以用xmlhttprequest很輕易的就可以抓到資料並加以應用。

我從台北市政府的OPENDATA中找到台北市氣溫的XML檔,他每個時間點都會做更新,另外也有氣溫、風向、溼度等。
下載下來後用瀏覽器開起來會顯示他的XML格式。











用xmlhttp.open("GET", "weatherReport1.xml", false);   xmlhttp.send();  打開檔案並把回傳值丟進  xmlDoc = xmlhttp.responseXML;

再來就用html的getElementsByTagName方法抓到所要的標籤,並把它底下(childnode)的值取出來。
我抓到每個區的第一個時間點的溫度,並把他丟進表格裡顯現出來。
另外我用tomcat來從localhost8080抓到此檔案(http://localhost:8080/openxml.html)
因為XMLhttprequest無法從不知名的網域仔入檔案,需要HTTP當開頭。
XMLHttpRequest cannot load file:///C:/xampp/tomcat/webapps/ROOT/weatherReport1.xml. Cross origin requests are only supported for protocol schemes: http, data, chrome, chrome-extension,

0 意見:

張貼留言